gpt4 book ai didi

windows - 在 cmd 提示符和 win32_process 上延迟扩展 ERRORLEVEL 的区别

转载 作者:可可西里 更新时间:2023-11-01 14:13:26 25 4
gpt4 key购买 nike

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. 执行有什么区别?

最佳答案

通过使用

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:\ERtecho !ERRORLEVEL!

在新命令进程中执行的整个命令行周围的双引号造成了差异。

如果在新命令进程中执行的命令行周围没有双引号,则当前命令进程会像键入时一样解释包含两个命令的行

cmd /V:ON /c dir c:\ERt
echo !ERRORLEVEL!

也可能是

cmd /V:ON /c dir c:\ERt ^& echo !ERRORLEVEL!

现在 & 运算符被转义,因为当前命令进程被解释为文字字符,因此整行执行时插入符号 ^ 被新命令进程删除。

关于windows - 在 cmd 提示符和 win32_process 上延迟扩展 ERRORLEVEL 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41733606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com