web-dev-qa-db-ja.com

実行中にVBScriptコマンドウィンドウを開いたままにする方法

VBScriptを実行すると、ユーザーが出力を読み取る機会を得る前に、VBScriptが作成するコマンドウィンドウがすぐに閉じます。 Windowsレジストリを変更せずにウィンドウを開いたままにするにはどうすればよいですか?

これはコードです:

Set objShell = WScript.CreateObject("WScript.Shell") 
objShell.Run "SyncToyCmd.exe -R", 1, True
11
Martin

実行コマンドは、cmd.exeコマンドインタープリターを介して、ユーザーにウィンドウを閉じるようにPress any key to continue . . .プロンプトを表示するpauseコマンドとともに送信できます。

objShell.run "%comspec% /c ""SyncToyCmd.exe -R & pause""", 1, True

または、ウィンドウを存続させるには、/kの代わりに/cフラグを使用します。

objShell.run "%comspec% /k SyncToyCmd.exe -R", 1, True

ただし、このcmdウィンドウを手動で閉じるまで、VBScriptは続行(または終了)しないことに注意してください。

%comspec%環境変数は、オペレーティングシステムに従ってコマンドインタープリターを開くための正しいコマンドを参照します。私のXPマシンでは、たとえば、%comspec%C:\WINDOWS\system32\cmd.exeと同じです。

こちらのcmd.exeドキュメントを参照してください: http://www.Microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true

&&&コマンド区切り文字の使用に関する詳細 ここ

(VBScriptを実行しているウィンドウではなく)開いたままにしたいポップアップコマンドウィンドウであると想定すると、CMD.exePauseコマンドを使用してこれを実現できます。

Set objShell = WScript.CreateObject("WScript.Shell") 
objShell.Run "cmd.exe /C ""SyncToyCmd.exe -R & Pause"" ", 1, True
3
Tao