我的 foo.bat 文件:
exit /b 1
我在cmd提示符下执行的内容:
foo.bat && echo "OK"
Result:
exit /b 1
"OK"
然而,当我使用双管时,不会出现回声:
foo.bat || echo "OK"
Result:
exit /b 1
这与我期望的 && 和 || 的行为完全相反。去做。看https://ss64.com/nt/call.html,其中写着:
commandA && command 运行命令,如果成功则运行命令
and
命令A || commandB 运行commandA,如果失败则运行commandB
我失去理智了吗?我在这里缺少什么?
||
and &&
响应上一个命令的返回码(左边最后执行的命令)。无论上下文如何,所有程序都会以错误代码退出。
EXIT /B 1
设置批处理错误级别,这严格来说是一个 cmd.exe 概念。
返回码和 ERRORLEVEL 是not一样的东西!
执行批处理文件时,如果批处理文件是通过以下方式执行的,则仅返回现有的 ERRORLEVEL 作为返回代码CALL
.
当不使用 CALL 执行批处理文件时,&&
and ||
响应脚本中执行的最后一个命令。
EXIT /B 1
将 ERRORLEVEL 设置为 1,但命令执行成功,因此返回码为 0。
When CALL
使用时,CALL 命令在脚本终止后查看 ERRORLEVEL,并将返回码设置为 ERRORLEVEL。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)