bash 的 set -e 的 cmd.exe 替代品是什么?

sor*_*rin 5 cmd batch-file exit-code

我想获得 bash 提供的相同功能,set -e但在 Windows 批处理文件中。这怎么可能?

目前这允许我退出,但我不想在批处理文件的每一行之后添加这一行。

IF %ERRORLEVEL% NEQ 0 exit /B  %ERRORLEVEL%
Run Code Online (Sandbox Code Playgroud)

Dav*_*ann 5

以供参考

-e   errexit
      Exit immediately if a simple command exits with a non-zero
      status, unless the command that fails is part of an until or
      while loop, part of an if statement, part of a && or || list,
      or if the command's return status is being inverted using !.
Run Code Online (Sandbox Code Playgroud)

http://ss64.com/bash/set.html

不幸的是,仅使用单个命令是不可能实现这一点的。

您必须在出现错误时退出的每个命令后添加检查。||您可以只使用或检查命令结果,而不是使用整个单独的行。

command || exit /b
Run Code Online (Sandbox Code Playgroud)

这也可以通过将其放在开头的变量中来简化。

set "e=|| exit /b"
command1 %e%
command2 %e%
Run Code Online (Sandbox Code Playgroud)