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