13

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

これはコードです:

Set objShell = WScript.CreateObject("WScript.shell") 
objShell.Run "SyncToyCmd.exe -R", 1, True
4

3 に答える 3

22

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

コマンド セパレータ&との使用に関する詳細は、こちらを参照してください。&&

于 2011-09-23T09:13:23.573 に答える
3

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

Set objShell = WScript.CreateObject("WScript.shell") 
objShell.Run "cmd.exe /C ""SyncToyCmd.exe -R & Pause"" ", 1, True
于 2011-09-23T11:17:20.257 に答える
-3

しばらくスリープ状態にして、5 秒で閉じることをユーザーに伝えますか?

Set WScript = CreateObject("WScript.Shell") 
WScript.Sleep 5000
于 2011-09-23T09:14:11.030 に答える