批处理goto指令丢失errorlevel值。
批处理goto指令丢失errorlevel值。
考虑以下批处理文件test.bat(PC01处于关闭状态):
mkdir \\PC01\\c$\Test || goto :eof
如果我从命令行中运行该批处理文件:
> test.bat || echo 99 > if ERRORLEVEL 1 echo 55
输出就只有55,没有99。尽管有错误级别,但是“||”运算符并没有检测到它。
如果我使用“cmd /c-”运行该批处理文件
> cmd /c test.bat || echo 99 > if ERRORLEVEL 1 echo 55
输出为空。错误级别为0。
如果我移除“|| goto :eof”,一切都可以如预期地正常工作,即输出为
99 55
有谁知道这种半烤的半存在的错误级别行为是如何发生的吗?
admin 更改状态以发布 2023年5月24日