http://www.cnblogs.com/jxgxy/archive/2013/09/20/3330818.html
wscript addto-startup.js
【轉】捕獲Wscript.Quit的退出碼
http://blog.sina.com.cn/s/blog_5f435c130101alcc.html
【原文鏈接】http://officevba.blog.51cto.com/897505/243583
1.vbs代碼: WScript.Sleep 1000 WScript.Echo "test" WScript.Quit 5|
2.vbs代碼: Dim WshShell, oExec 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 關於Run的用法可以參見
http://hi.baidu.com/patrolsun/blog/item/1695eb1fc851f608304e15ca.html
|
【vs開發安裝項目,用到.vsb腳本的官方參考示例文檔】: