gpt4 book ai didi

batch-file - 为什么 cmd.exe 在 64 位机器上有不同的错误级别行为?

转载 作者:行者123 更新时间:2023-12-04 17:28:43 25 4
gpt4 key购买 nike

如果我制作了一个名为 temp.bat 的批处理脚本(例如),其中包含:

exit /b 1

当我以各种方式运行它时,我在 32 位 XP 系统和 64 位 XP 系统上得到不同的行为。

在 32 位上:
> temp.bat
> echo %ERRORLEVEL%
1
> cmd /c temp.bat
> echo %ERRORLEVEL%
0

在 64 位上:
> temp.bat
> echo %ERRORLEVEL%
1
> cmd /c temp.bat
> echo %ERRORLEVEL%
1

我搜索了 cmd.exe 选项,但找不到任何控制它如何从批处理脚本传播错误级别信息的选项。在这一点上,我无法为这种差异找到任何合理的解释。

最佳答案

您必须小心 exit/b ,因为它实际上并非在所有情况下都能正常工作。例如:
temp.bat&&echo 0||echo 1
如果 temp.bat 包含 exit/b 1 您希望打印 1,但事实并非如此。遗憾的是,真正为批处理文件设置工作退出代码的唯一方法是使用 @%COMSPEC% /C exit 1最后 批处理文件中的行

关于batch-file - 为什么 cmd.exe 在 64 位机器上有不同的错误级别行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1924497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com