【发布时间】:2026-02-11 22:00:02
【问题描述】:
从 Windows 命令行运行此批处理文件会导致 %errorlevel% 为 5(即在执行批处理文件后在命令行上运行 echo %errorlevel% 会打印数字 5):
EXIT /B 5
这很好。
但是,无论如何,运行此批处理文件都会导致 %errorlevel% 为 0:
sleep 1
EXIT /B 5
我希望它返回错误代码 5。我该怎么做?
注意:如果我将 sys.exit(13) 添加到 sleep.py(见下文),那么第二个批处理文件将返回退出代码 13。所以我的批处理文件将返回退出代码sleep.py 脚本,而不是通过 EXIT 命令指定的退出代码(这很奇怪)。
sleep.bat:
sleep.py %1
sleep.py:
import sys
import time
if len(sys.argv) == 2:
time.sleep(int(sys.argv[1]))
【问题讨论】:
-
不,我从命令行回应。所以在命令行上我首先输入“my_batch_script.bat”并让它运行。然后我输入“echo %errorlevel%”。我刚刚尝试了延迟扩展,但它似乎根本无法在命令行上运行(回显!errorlevel!只是打印!errorlevel!)。
标签: windows batch-file exit-code return-code