cmd /V:ON /c dir c:\<some non existing directory> & echo %ERRORLEVEL% Volume in drive C is PC COE Volume Serial Number is 9C37-D0B7 Directory of c:\ File Not Found 0
让我们使用相同的命令! 扩展ERRORLEVEL(启用延迟扩展)
cmd /V:ON /c dir c:\ERt & echo !ERRORLEVEL! Volume in drive C is PC COE Volume Serial Number is 9C37-D0B7 Directory of c:\ File Not Found !ERRORLEVEL!
它打印!错误!
当我使用WMI win32_process create命令运行该命令并且使用!ERRORLEVEL返回适当的错误时,这样做工作正常! variables
在cmd提示符下执行并使用WMI win32_process执行时会有什么不同?
通过使用
cmd /V:ON /c dir c:\ERt & echo !ERRORLEVEL!
以cmd /V:ON
开头的新命令进程cmd /V:ON
只执行命令dir c:\ERt
然后关闭,第二个命令echo !ERRORLEVEL!
由不进行延迟扩展的电流指令处理执行。
命令行
cmd /V:ON /c "dir c:\ERt & echo !ERRORLEVEL!"
必须用来运行dir c:\ERt
和echo !ERRORLEVEL!
在退出此命令过程之前的新命令过程中。
在整个命令行周围的双引号在新的命令过程中执行是有区别的。
如果没有命令行周围的双引号在新的命令过程中执行,则当前命令过程在输入时用这两个命令解释该行
cmd /V:ON /c dir c:\ERt echo !ERRORLEVEL!
也有可能的
cmd /V:ON /c dir c:\ERt ^& echo !ERRORLEVEL!
现在&
运算符被转义为当前命令进程被解释为文字字符,因此整个线路被执行,脱字符被新命令进程删除。