考虑以下bat,test.bat(PC01关闭):
mkdir \\PC01\\c$\Test || goto :eof
Run Code Online (Sandbox Code Playgroud)
如果我从命令shell运行该bat:
> test.bat || echo 99
> if ERRORLEVEL 1 echo 55
Run Code Online (Sandbox Code Playgroud)
输出只有55.没有99.有一个错误级别,但||操作员没有看到它.
如果我用那个蝙蝠跑 cmd /c -
> cmd /c test.bat || echo 99
> if ERRORLEVEL 1 echo 55
Run Code Online (Sandbox Code Playgroud)
输出为空白.Errorlevel为0.
如果我删除了|| goto :eof,一切都按照人们的预测 - 即输出即可
99 55
有谁知道为什么这种半生半熟的ERRORLEVEL行为正在发生?