Variables 循环中的变量(批处理)

Variables 循环中的变量(批处理),variables,batch-file,for-loop,Variables,Batch File,For Loop,这是我的剧本 set e=0 for /f "tokens=*" %%i in ('type C:\Users\braimm\Desktop\test1.xml') do ( if "%%i" == "======1.3.0.5======" ( set e=1 ) if "%%i" == "====RELEASES====" if "%e%"=="1" ( echo !e! echo test>>fichierTest.xml ) echo %%i>>fichi

这是我的剧本

set e=0
  for /f "tokens=*" %%i in ('type C:\Users\braimm\Desktop\test1.xml') do (

if "%%i" == "======1.3.0.5======" (

set e=1 )
if "%%i" == "====RELEASES====" if "%e%"=="1" (
echo !e!
echo test>>fichierTest.xml )
echo %%i>>fichierTest.xml )
我的变量始终为0,我想要一件简单的事情:如果e在一次迭代中更改为1,那么e必须在下一次迭代中保留该值。 我不确定,但我认为当开始另一个迭代时,它会变成0


谢谢

如果“%e%”=“1”,为什么在
中同时使用百分比和感叹号(echo!e!
?如果您知道为什么使用感叹号,那么您就知道问题的答案了!提示:打开一个命令提示符窗口,在那里执行
set/?
,然后立即阅读此命令的整个帮助输出,解释您需要了解的有关环境变量使用的几乎所有信息,包括延迟扩展。运行Windows上带有参数
/?
的命令或控制台应用程序通常会获得此命令或应用程序的帮助。或者,您可以将其添加到浏览器的书签/收藏夹中,并在将来使用。谢谢,我确实理解了此问题为什么无法生效,我只是错过了在批处理文件中添加SETLOCAL ENABLEDELAYEDEXPANSION