如何在执行过程中保持VBScript命令窗口打开

如何在执行过程中保持VBScript命令窗口打开,vbscript,command-window,Vbscript,Command Window,当我执行VBScript时,它创建的命令窗口会在用户有机会读取输出之前快速关闭。如何在不修改windows注册表的情况下使窗口保持打开状态 代码如下: Set objShell = WScript.CreateObject("WScript.shell") objShell.Run "SyncToyCmd.exe -R", 1, True 您可以通过cmd.exe命令解释器发送执行命令,同时发送暂停命令,该命令将为用户提供按任意键继续提示关闭窗口 objShell.run "%comspec

当我执行VBScript时,它创建的命令窗口会在用户有机会读取输出之前快速关闭。如何在不修改windows注册表的情况下使窗口保持打开状态

代码如下:

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

您可以通过
cmd.exe
命令解释器发送执行命令,同时发送暂停命令,该命令将为用户提供
按任意键继续提示关闭窗口

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
文档:


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

让它休眠一段时间,或者告诉用户它将在5秒钟内关闭

Set WScript = CreateObject("WScript.Shell") 
WScript.Sleep 5000

假设您要保持打开的是弹出的命令窗口(而不是运行VBScript的窗口),则可以使用
CMD.exe
Pause
命令来实现此目的:

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

以前存在的用于执行脚本的命令行窗口是否关闭?我从未见过这种情况发生。还是说,从Windows资源管理器执行VBScript?你使用的是什么版本的Windows?Jean-Francois Corbett是对的,我看不到你在关闭中执行脚本的cmd窗口,当然它应该给你一个新的cmd行?@Jean-FrancoisCorbett我不是在说执行脚本的窗口。当脚本开始执行时,会弹出一个新窗口并快速关闭。我正在使用windows 7。您是否专门在脚本中打开命令行窗口?或者这只是运行脚本时自动发生的事情?(我没有这样做。)请向我们展示(相关部分)您的代码。@Jean FrancoisCorbett Set objShell=WScript.CreateObject(“WScript.shell”)objShell.Run“SyncToyCmd.exe-R”,1,true为什么用“此消息将在5秒钟内自毁”让用户陷入恐慌?最好让用户选择何时关闭。如果你给他们足够的时间,这不会让他们“恐慌”,并且通过使用我建议用户知道何时关闭的消息,同时使用消息框可能会模糊应用程序结果的视图,这意味着他们必须将其移到一边才能看到任何操作,如果问题已经澄清,这将不起作用,我的原始答案也将不起作用…-1因为WScript.Shell对象不是WScript对象(因此第一条语句将删除具有.Sleep方法且没有.Sleep方法的“真实”WScript)。@C:发布顺序与此无关-您的代码错误,应予以更正。