CScript / WScript防止错误被阻止
时间:2020-03-06 14:19:44 来源:igfitidea点击:
当前,出现脚本错误时,WScript会弹出消息框。这些脚本由其他进程调用,并在服务器上运行,因此没有人可以关闭错误框。
我想要的是将错误消息转储到STDOUT,然后执行以返回调用过程。弹出为MSGBox只是挂了整个事情。
有想法吗?
解决方案
我们尚未说明使用的语言。如果使用的是VBScript,则可以使用On Error ...语句编写错误处理程序。如果我们使用的是JScript,则可以使用try {} catch(x){}块。
不要这样做:
vbscript:
出现错误时,继续下一个
英语:
"当我们遇到错误时,请忽略它并继续前进。"
不要使用WScript。使用CScript。在Windows命令提示符下,键入以下内容以显示帮助。
cscript //?
我建议以下内容:
cscript //H:CScript
这将使CScript成为默认脚本解释器。 CScript可根据需要将消息打印到控制台(即stdout)。 (它不使用对话框窗口。)
我们可能还想尝试// B开关,但是我不能确定是否必须按脚本运行。如果它像// H开关一样是持久的一次性开关,那么它可能对我们有用;如果不是,则可能需要修改所有远程程序以包含它。从我们提供的信息来看,我认为只需更改默认解释器(// H)即可完成我们想要的操作。
我们还需要添加某种错误处理,以防止脚本终止于错误。在Visual Basic Scripting Edition中,如果只想忽略错误,最简单的操作是在脚本顶部添加以下内容。
On Error Resume Next
有关更多信息,请参见http://msdn.microsoft.com/zh-cn/library/53f3k80h(VS.85).aspx。
使用WScript.Echo而不是MsgBox。并且,使用CSCRIPT而不是WSCRIPT运行脚本。
这是我们应该运行脚本批处理作业的方式:
cscript //b scriptname.vbs