VBScript を実行すると、VBScript が作成したコマンド ウィンドウが、ユーザーが出力を読む前にすぐに閉じてしまいます。Windowsレジストリを変更せずにウィンドウを開いたままにするにはどうすればよいですか?
これはコードです:
Set objShell = WScript.CreateObject("WScript.shell")
objShell.Run "SyncToyCmd.exe -R", 1, True
VBScript を実行すると、VBScript が作成したコマンド ウィンドウが、ユーザーが出力を読む前にすぐに閉じてしまいます。Windowsレジストリを変更せずにウィンドウを開いたままにするにはどうすればよいですか?
これはコードです:
Set objShell = WScript.CreateObject("WScript.shell")
objShell.Run "SyncToyCmd.exe -R", 1, True
cmd.exe
コマンド インタープリターを介して実行コマンドを送信し、ユーザーPress any key to continue . . .
にウィンドウを閉じるプロンプトを表示する一時停止コマンドを送信できます。
objShell.run "%comspec% /c ""SyncToyCmd.exe -R & pause""", 1, True
または、ウィンドウを維持するには、/k
代わりにフラグを使用し/c
ます。
objShell.run "%comspec% /k SyncToyCmd.exe -R", 1, True
ただし、このコマンド ウィンドウを手動で閉じるまで、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
しばらくスリープ状態にして、5 秒で閉じることをユーザーに伝えますか?
Set WScript = CreateObject("WScript.Shell")
WScript.Sleep 5000