CMD批处理程序中子程序的调用方如何获得其退出代码



假设我们有这样的CMD批处理脚本代码:

CALL :SUB
REM DO SOMETHING WITH THE RESULT HERE (300)
EXIT
:SUB
EXIT /B 300

如果SUB的结果是300,可以使用什么变量或机制来代替上面标记的REMarked来做一件事,如果不是,可以使用其他事情?我想在里面写这样的东西:

IF %RESULT% EQU 300 (
ECHO Hi
) ELSE (
ECHO Bye
)

如果我错了,请纠正我,但我认为这里的机制(条件语句(很好,但变量呢?

这不像在其他编程语言中那样直观,但您想要的变量是%ERRORLEVEL%——与用于记录您可能在批处理脚本中调用的其他命令的结果的变量相同。根据微软的说法,退出命令的语法是:

exit [/b] [<exitcode>]

其中exitcode;指定一个数字。如果指定了/b,ERRORLEVEL环境变量将设置为该数字。如果要退出命令解释器,进程退出代码将设置为该数字">

所以最终,你想写,

IF %ERRORLEVEL% EQU 300 (
ECHO Hi
) ELSE (
ECHO Bye
)

最新更新