无论如何,如果没有延迟扩展(一行,为了便于阅读而破坏),是否有以下操作?
%comspec% /v:on /c %windir%\System32\reg.exe import c:\temp\test.reg &
if !errorlevel! neq 0 pause
如果是回声,我知道可以使用call
,但似乎无法与if
一起使用。
答案 0 :(得分:4)
您可以使用条件执行:
reg.exe import c:\temp\test.reg || pause
||
表示失败时执行(即errorlevel neq 0)。
您可能还想尝试这个示例,看看它是如何工作的:
find "this" && echo found || echo not found
- 它将通知您“此”是否在输入流中(除非您重定向,否则从键盘输入)。
答案 1 :(得分:2)
一种方法是使用这种旧语法:
%comspec% ... & if errorlevel 1 pause
在这种情况下,使用if
语句的特殊变体,用于测试当前的错误级别状态。
另一种选择可能是:
%comspec% ... || pause
||
命令分隔符roughly等同于& if !errorlevel! neq 0
,即仅当前一个命令以非零退出代码终止时才执行后续命令。