通常、Windowsでバッチファイルを実行時DOS窓を表示させないようにしたい場合、そのバッチファイルのショートカットを作成後、そのショートカットのプロパティで「実行時の大きさ」を「最小化」にすると、実現可能です。
しかし、タスクスケジューラでバッチファイルをスケジュール実行する場合、ショートカットを指定することができないので、バッチファイル実行時DOS窓が表示されないようにはできません。
でも、VBSを使用すれば実現可能です。
以下がその記録です。(VBSファイルを作成するだけです)
VBSファイル
ファイル名:hoge.vbs、実行するバッチファイル:hoge.bat
1
2
| Set objWSHShell = CreateObject("WScript.Shell")
objWSHShell.Run "cmd.exe /c hoge.bat", 7
|
・cmd.exe の後ろの “/c” はバッチ実行後終了することを意味しています。
・最後の “7” はウィンドウを最小化にすることを意味しています。
ちなみに、WScript.ShellオブジェクトのRunメソッドの第2引数はこちらによると以下のとおり。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| 0 : ウィンドウを非表示にし、別のウィンドウをアクティブにします。
1 : ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合は、
元のサイズと位置に戻ります。アプリケーションでウィンドウ を最初に表示するときには、
このフラグを指定してください。
2 : ウィンドウをアクティブにし、最小化ウィンドウとして表示します。
3 : ウィンドウをアクティブにし、最大化ウィンドウとして表示します。
4 : ウィンドウを最新のサイズと位置で表示します。アクティブなウィンドウは切り替わりません。
5 : ウィンドウをアクティブにし、現在のサイズと位置で表示します。
6 : 指定したウィンドウを最小化し、Z オーダー上で次に上位となるウィンドウをアクティブにします。
7 : ウィンドウを最小化ウィンドウとして表示します。アクティブなウィンドウは切り替わりません。
8 : ウィンドウを現在の状態で表示します。アクティブなウィンドウは切り替わりません。
9 : ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合は、
元のサイズと位置に戻ります。アプリケーションで最小化ウィンドウを復元するときには、
このフラグを指定してください。
10 : アプリケーションを起動したプログラムの状態に基づいて、表示状態を設定します。
|
あとは、作成したVBSファイルをタスクスケジューラに登録すれば OK です。
以上。