在bash中,脚本开头的“set -e”指示bash在内部任何命令第一次失败时使整个脚本失败。
如何为Windows批处理脚本执行相同的操作?
答案 0 :(得分:15)
Tuim的解决方案有效,但它可以更简单。
ERRORLEVEL已设置,因此无需GOTO设置ERRORLEVEL的标签。
您只需使用
即可yourCommand || exit /b
请注意,如果您处于CALL中间,则exit / b将仅退出当前子例程。您的脚本必须逐层退出每个CALL,直到它到达脚本的根目录。只要您还在每个CALL语句之后放置测试
,这将自动发生call :label || exit /b
可以强制批处理脚本立即从任何CALL深度退出。有关详细信息,请参阅How can I exit a batch file from within a function?。一定要阅读这两个答案。接受的答案有几个潜在的严重缺点。
答案 1 :(得分:5)
不是直接但您可以将以下内容添加到每个要执行某些内容的行中。
|| goto :error
然后定义错误,停止脚本。
:error
exit /b %errorlevel%