有一个名为 myfile.txt 的文件包含字符串“hpxu”
进入命令提示符并输入:
findstr khry myfile.txt & echo %errorlevel%
第一次执行结果为0,第二次及后续执行结果为1。
出了什么问题?Windows 10 上也会出现这种情况
答案1
第一次运行时,该errorlevel
值不会扩展为运行时值。
其次,你的第一个命令的值被扩展了。
在您的命令中,您需要告诉 cmd在运行时!expand!
的值%variable/errorlevel%
,否则它将假定当前值,该值出现在第一和第二个
你可以告诉 cmd (命令行解释器)使用以下命令执行此操作/v:on |or| /v
:
cmd /v /c "findstr khry myfile.txt & echo\!errorlevel!"
在 bat 文件中使用EnableDelayedExpansion
@echo off
setlocal EnableDelayedExpansion
findstr khry myfile.txt & echo\!errorlevel!
尝试花一些时间来更好地理解下面这个答案中的 cmd 的工作原理@dbenham并特别注意第 5 阶段: