You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMD批处理中子程序调用者如何获取其退出码?

CMD批处理子程序退出码判断解决方案

修改后的完整代码

CALL :SUB
IF %ERRORLEVEL% EQU 300 (
   ECHO Hi
) ELSE (
   ECHO Bye
)
EXIT /B

:SUB
EXIT /B 300

关键说明

  • 替代%RESULT%的正确变量是%ERRORLEVEL%:CMD中通过EXIT /B <数值>返回子程序退出码时,该数值会自动存入%ERRORLEVEL%环境变量,调用子程序后直接读取这个变量就能获取返回结果。
  • 需要纠正的细节:
    • 原主脚本末尾的EXIT会直接关闭CMD窗口,建议改为EXIT /B,这样仅退出当前批处理脚本,保留命令行窗口方便查看输出内容。
    • 如果你的脚本包含嵌套括号、循环等复杂逻辑,建议开启延迟扩展功能,改用!ERRORLEVEL!读取变量,避免因CMD变量预扩展特性导致的判断错误。示例代码如下:
SETLOCAL EnableDelayedExpansion
CALL :SUB
IF !ERRORLEVEL! EQU 300 (
   ECHO Hi
) ELSE (
   ECHO Bye
)
EXIT /B

:SUB
EXIT /B 300

内容的提问来源于stack exchange,提问作者ShieldOfSalvation

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:02:25