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!
它打印!ERRORLEVEL!。
当我使用 WMI win32_process create 命令运行命令并使用 !ERRORLEVEL! 返回正确的错误时,这确实工作正常。多变的
在 cmd 提示符下执行和使用 WMI win32_process 执行有什么区别?
By using
cmd /V:ON /c dir c:\ERt & echo !ERRORLEVEL!
新的命令进程开始于cmd /V:ON
仅执行命令dir c:\ERt
然后关闭第二个命令echo !ERRORLEVEL!
由当前未启用延迟扩展的命令进程执行。
命令行
cmd /V:ON /c "dir c:\ERt & echo !ERRORLEVEL!"
必须用来运行dir c:\ERt
AND echo !ERRORLEVEL!
在退出此命令进程之前在新命令进程中。
在新命令进程中执行的整个命令行周围的双引号会有所不同。
如果没有在新命令进程中执行的命令行周围使用双引号,则当前命令进程会像键入时一样解释包含两个命令的行
cmd /V:ON /c dir c:\ERt
echo !ERRORLEVEL!
也可能是
cmd /V:ON /c dir c:\ERt ^& echo !ERRORLEVEL!
Now &
运算符被转义,以将当前命令进程解释为文字字符,因此整行都使用插入符号执行^
由新的命令进程删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)