Sunday 1 June 2014

タスクスケジューラーからバッチファイルを画面表示一切なしで起動する方法

Windows7 Home Premium 64bit

手動でバッチファイルを起動するのならば、バッチファイルを起動するショートカットを作っておき、ショートカットのプロパティの「実行時の大きさ」を「最小化」にしておけば良いです。

ところがタスクスケジューラー(taskschd.msc)から起動する場合は、この設定が無視されます。

Windows7では、タスクのコマンドラインにショートカットファイル(.lnk)を指定しておいても、.lnkファイルのプロパティが無視されるようです。

ちなみに昔のWindowsは.lnkファイルの設定に従ってくれたらしいです。
http://qa.atmarkit.co.jp/q/968

【解決法】
バッチファイルをVBScriptから呼べば良いらしい(・∀・)

Set objWSHShell = CreateObject("WScript.Shell")
objWSHShell.Run "cmd.exe /c 「実行したいバッチファイル」", 0
(cmd.exe /cは省略OKみたいです)

・・・というテキストを拡張子.vbsで保存しておき、タスクスケジューラーからはこれを呼べば解決!
末尾の数字0が「ウインドウ非表示」の意味。
ちなみにこの指定をするとアプリケーションによっては思わぬトラブルの原因になる場合もあるので注意。


objWSHShell は ws でも良いらしい(何故かは知りません)

Set ws = CreateObject("WScript.Shell")
ws.Run "cmd.exe /c 「実行したいバッチファイル」", 0

No comments:

Post a Comment