VBScriptを実行すると、ユーザーが出力を読み取る機会を得る前に、VBScriptが作成するコマンドウィンドウがすぐに閉じます。 Windowsレジストリを変更せずにウィンドウを開いたままにするにはどうすればよいですか?
これはコードです:
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "SyncToyCmd.exe -R", 1, True
実行コマンドは、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.exe
のPause
コマンドを使用してこれを実現できます。
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "cmd.exe /C ""SyncToyCmd.exe -R & Pause"" ", 1, True