首页 » ASP代码 » 捕获Wscript.Quit的退出代码

捕获Wscript.Quit的退出代码

1.vbs代码:
WScript.Sleep 1000
WScript.Echo “test”
WScript.Quit 5|
2.vbs代码:
Set WshShell = CreateObject(“WScript.Shell”)
Set oExec = WshShell.Exec(“wscript.exe 1.vbs”)
Do While oExec.Status = 0
WScript.Sleep 100
Loop
WScript.Echo oExec.ExitCode

如此就可以捕获1.vbs的退出码为5,2.vbs中的sleep语句是等待1.vbs执行的,去掉2中的sleep语句会显示为0而不是5了。顺便,Exec函数具有很多Run函数不具有的功能,Exec函数返回的是一个对象,故而具有更多功能(见下面),恰恰Run函数返回的仅仅是个数字,代表运行结果即返回值,所以2.vbs的代码当然也可以写成如:
Dim WshShell, oExec
Set WshShell = CreateObject(“WScript.Shell”)
WScript.Echo WshShell.Run(“wscript.exe “”C:\Documents and Settings\patrol\桌面\1.vbs”"”,,True)
注意这里1.vbs要使用绝对地址了,因为Wscript.exe默认其所在的目录为当前目录;另外一定要使用True。
附记:WshExec类具有属性ExitCode,ProcessID,Status,StdErr,StdIn,StdOut以及一个函数Terminate,这些属性和函数都很好理解。
Status属性具有三个值:
Const WshFailed = 2
Const WshFinished = 1
Const WshRunning = 0

, , , ,

转发到新浪微博 转发到新浪微博

对不起,这篇文章暂时关闭评论。