在VBscript中捕获Console应用程序的返回码?

时间:2011-08-01 18:34:12

标签: c# vbscript console console-application

我试图在控制台应用程序中使用Environment.Exit函数返回成功/错误代码。 (0表示成功,1表示错误)。现在我想在vbscript中捕获这个返回码并显示返回码(例如WScript.Echo(returnCode))。

有人知道是否可以这样做吗?

由于

3 个答案:

答案 0 :(得分:4)

Launching other programs from a script

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

如果bWaitOnReturn设置为True,则Run方法会创建一个新进程,   执行该命令,并等待该进程终止。在这   case,Run方法返回从中获取的错误代码   终止过程。如果缺少bWaitOnReturn或设置为False,   运行返回错误代码0。

答案 1 :(得分:2)

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

答案 2 :(得分: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 Shell

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

现在我们需要指定要运行的脚本。脚本路径为“Mexico.vb​​s”

Dim Command
Command="Mexico.vbs"

现在JUST IN CASE文件路径中有任何空格(没有,但让我们安全)我们需要将路径括在引号中。 (字符代码: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格式化为UserFriendly字符串。

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

现在我们将在msgbox中显示结果。

MsgBox Return

在Mexico.vb​​s中,您将通过退出代码发送成功或失败。 我们将exitcode变量命名为Success

Dim Success

本部分用于演示目的。您可以排除此部分并将其替换为审核报表。如果成功则将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

现在我们将bool Success转换为Integer,1 =成功,2 =失败,0 =未知

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

现在我们将使用Success中设置的退出代码终止Mexico.vb​​s脚本。

WScript.Quit (Success)