Window shell脚本(* .bat文件)是否有一组标准的返回码?我正在寻找类似于Linux退出代码的东西,其中0 = =成功且非零==失败。 我需要一种方法来以编程方式检查我的shell脚本在执行期间是否失败。
答案 0 :(得分:2)
最常见的实践与Unix标准相同,因此返回代码(批处理文件中也称为错误级别)为0成功,而高于0的任何内容都是错误。
有许多相关的问题需要查看 - 请查看本指南:
答案 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个错误级别。