リンク先が `cmd.exe /c "C:\Path\to\hoge.bat"` であるようなショートカットを作成したい
サマリ
「リンク先」が cmd.exe /c "C:\Path\to\hoge.bat"
であるようなショートカットをスクリプトで作成したいです。どうやったらこれは実現できますか。
詳細
バッチファイルがあった場合に、このファイルを実行するようなショートカットを作成して、それをタスクバーに追加することで、 Windows + NumberKey で、バッチファイルをキーボードショートカットから実行する、といったことをよくやります。
そのために、作成するショートカットファイルは、以下の手順で普段は作成しています。
- タスクバーから実行したい bat ファイルのショートカットを作成する
- 右クリックでショートカットのプロパティを編集し、 リンク先を
C:\Path\to\bat.bat
からcmd.exe /c "C:\Path\to\bat.bat"
に変換する - このショートカットをタスクバーに追加する
今回、この手順を自動化したいと考えました。
以下のように記述をすることで、普通のショートカットの自動生成はできることを確認しました。
Option Explicit
Dim WSH,sc
Dim linkTarget
linkTarget = "C:\Users\joe\Desktop\copy_mail.bat"
REM linkTarget = "cmd.exe /c ""C:\Users\joe\Desktop\copy_mail.bat"""
Set WSH=CreateObject("WScript.Shell")
Set sc = WSH.CreateShortcut("C:\Users\joe\Desktop\copy_mail.lnk")
sc.TargetPath = linkTarget
sc.save
Set sc = Nothing
Set WSH = nothing
しかし、 REM
の部分を外して、今回やりたいリンク先である、バッチの実行コマンドでもってショートカットを作成しようとすると、次のエラーが発生します。
スクリプト: C:\Path\to\bat.bat
行: 12
文字: 1
エラー: プロシージャの呼び出し、または引数が不正です。
コード: 800A0005
ソース: Microsoft VBScript 実行時エラー
これは、どうやったら解消でき、どうやったらバッチファイルの実行コマンドをリンク先に持つショートカットを作成できますでしょうか。