2

无论如何都可以在没有延迟扩展的情况下执行以下操作(一行,为了便于阅读而中断)?

%comspec% /v:on /c %windir%\System32\reg.exe import c:\temp\test.reg &
 if !errorlevel! neq 0 pause

如果是回声,我知道call可以使用,但似乎无法与if.

4

2 回答 2

4

您可以使用条件执行: reg.exe import c:\temp\test.reg || pause
||意味着在失败时执行(即错误级别 neq 0)。

您可能还想试试这个例子来看看它是如何工作的:

find "this" && echo found || echo not found- 它会通知您“this”是否在输入流中(从键盘输入,除非您重定向)。

于 2013-01-19T23:06:39.423 回答
2

一种方法是使用这种较旧的语法:

%comspec% ... & if errorlevel 1 pause

在这种情况下,使用了一种特殊的if语句变体,用于测试当前的错误级别状态。

另一种选择可能是这样的:

%comspec% ... || pause

||命令分隔符大致等价于,即仅当前& if !errorlevel! neq 0一个命令以非零退出代码终止时才执行后续命令。

于 2013-01-19T23:05:58.210 回答