Window shell脚本返回代码

时间:2010-03-04 18:36:02

标签: windows shell

Window shell脚本(* .bat文件)是否有一组标准的返回码?我正在寻找类似于Linux退出代码的东西,其中0 = =成功且非零==失败。 我需要一种方法来以编程方式检查我的shell脚本在执行期间是否失败。

5 个答案:

答案 0 :(得分:2)

最常见的实践与Unix标准相同,因此返回代码(批处理文件中也称为错误级别)为0成功,而高于0的任何内容都是错误。

有许多相关的问题需要查看 - 请查看本指南:

Batch Files - Errorlevels

答案 1 :(得分:2)

0表示成功,非0表示失败也是Windows批处理命令的约定。当命令失败时,它会设置ERRORLEVEL,这是一个可以在批处理文件中测试的特殊变量。

if errorlevel 1 goto failure

只要您不运行其他命令,errorlevel将继续执行运行.bat文件的调用方。

答案 2 :(得分:1)

您可以检查错误级别值。

IF shell语句的帮助告诉我以下内容:

IF [NOT] ERRORLEVEL number command

  ERRORLEVEL number Specifies a true condition if the last program run
                    returned an exit code equal to or greater than the number
                    specified.

答案 3 :(得分:1)

通常,Windows实用程序在成功时返回0,在错误时返回非零(通过ERRORLEVEL变量),就像Linux应用程序一样。不幸的是,没有强制执行的官方“标准”,并且并非每个实用程序或脚本都设置了错误级别。

如果您有要测试返回状态的脚本,请确保脚本使用EXIT /B ##退出,这会导致错误级别设置为##

答案 4 :(得分:0)

我更喜欢这种方式:

[run an exe here]

IF %errorlevel% NEQ 0 (
    CALL :SSH_fail filename.sh %errorlevel%
)


:SSH_fail
    Email.exe "%mailTo%" "%mailProgram% - SSH Failure " "Body: errorlevel:%~2 file name: %~1"
goto cont
这样,我确切地知道错误级别是什么。我认为最多可能有250个错误级别。