13

当我执行 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

但请注意,在手动关闭此 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

有关在此处&使用与&&命令分隔符的更多信息。

于 2011-09-23T09:13:23.573 回答
3

假设它是您想要保持打开的弹出命令窗口(而不是运行您的 VBScript 的那个),您可以使用CMD.exe'Pause命令来实现这一点:

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 回答