2011-08-01 72 views
2

我想在控制檯應用程序中使用Environment.Exit函數返回成功/錯誤代碼。 (成功爲0,錯誤爲1)。現在我想在vbscript中捕獲這個返回碼並顯示返回碼(例如WScript.Echo(returnCode))。在VBscript中捕獲Console應用程序的返回碼?

有誰知道這是否可以做到?

謝謝

+0

爲什麼被標記爲C#? –

+0

控制檯應用程序在C#中返回。 – sanjeev40084

回答

4

Launching other programs from a script

exitcode = WshShell.Run(strCommand, , true]) 

如果bWaitOnReturn設置爲True,Run方法創建新的進程, 執行該命令,並等待直到該過程終止。在此 的情況下,Run方法返回從 終止的進程獲得的錯誤代碼。如果bWaitOnReturn丟失或設置爲False, 運行返回錯誤代碼0

2
Set WshShell = WScript.CreateObject("WScript.Shell") 
errcode = WshShell.Run("your program.exe",,true) 
1

比方說,你正在運行的腳本被稱爲「加拿大 .VBS」,讓我們說的腳本,將返回代碼「墨西哥 .vbs」。

CANADA.VBS代碼(這是你會遇到什麼。):

Dim ExitCode 
Dim Return 
Dim WshShell 
Set WshShell=CreateObject ("WScript.Shell") 

Dim Command 
Command="Mexico.vbs" 
Command=Chr(34) & Command & Chr (34) 
ExitCode=WshShell.Run (Command, 1, True) 

If ExitCode="1" Then 
Return="Success" 
ElseIf ExitCode="2" Then 
Return="Failure" 
Else 
Return="Unknown" 
End If 

MsgBox Return 

MEXICO.VBS代碼(這是加拿大將運行什麼。):

Dim Success 

Success=MsgBox ("Do you want to Succeed?",vbQuestion + vbYesNo,"Your Goals are good?") 

success=success-7  'Vbyes=6 vbno=7. True=-1 False=0. 

'The Above Code is only for demonstration purposes. You may set success in your own statement 

If Success Then   'Successful 
Success=1 
ElseIf not Success Then 'Failure 
Success=2 
Else      'Unknown 
Success=0 
End If 

WScript.Quit (Success) 

好現在在加拿大,您需要申報一個將保存墨西哥退出代碼的變量。讓我們將其命名爲
Dim ExitCode
我們也將需要一個字符串變量(雖然可以折起來的ExitCode變量這一點,但這樣做可以讓大文件的調試難度。那麼就讓他們獨立。)

Dim Return 

我們將需要一個將運行Mexico.vb​​s的對象。我們需要的對象是WScript的殼牌

Dim WshShell 
Set Wshshell=CreateObject ("WScript.Shell") 

現在,我們需要指定要運行的腳本。腳本路徑是「Mexico.vb​​s」

Dim Command 
Command="Mexico.vbs" 

現在,以防萬一有在文件路徑的任何空間(這裏就不但我們是安全的),我們需要用引號括起來路徑。 (字符代碼:34)

Command=Chr(34) & Command & Chr (34) 

現在,我們需要運行從Canada.vbs的Mexico.vb​​s和保存返回到一個變量

ExitCode=WshShell.Run (Command, 1, True) 'command is path, 1 is window state, true is wait for return. 

現在我們格式化的ExitCode爲用戶友好字符串。

If ExitCode="1" Then 
Return="Success" 
ElseIf ExitCode="2" Then 
Return="Failure" 
Else 
Return="Unknown" 
End If 

現在我們將在msgbox中顯示結果。

MsgBox Return 

在Mexico.vb​​s你會被髮送至一個退出代碼是成功還是失敗。 我們將命名爲退出碼變量成功

Dim Success 

這部分用於演示目的。您可以排除這部分並將其替換爲您的審計報表。如果成功,只需將成功設置爲true,如果失敗則設置爲False。

Success=MsgBox ("Do you want to Succeed?",vbQuestion + vbYesNo,"Your Goals are good?") 

success=success-7  'Vbyes=6 vbno=7. True=-1 False=0. 

'The Above Code is only for demonstration purposes. You may set success in your own statement 

現在,我們將在布爾成功轉換爲整數,1 =成功2 =失敗,0 =未知

If Success Then   'Successful 
Success=1 
ElseIf not Success Then 'Failure 
Success=2 
Else      'Unknown 
Success=0 
End If 

而現在我們將終止Mexico.vb​​s腳本退出代碼設置在成功。

WScript.Quit (Success) 
相關問題