Windows批处理:For循环

我有一个文件FileLis.txt包含数据为

 FILE1.TXT
 FILE2.TXT
 file3.txt等。

在代码的下面%%a显示的结果与上面的文件列表完全一样,但是当我把它赋给一个variables时,它只能得到第一行( set "TARG_FILE=%%a" )。 任何人都可以解释为什么这种行为的差异,什么是正确的写作方式?

 @ECHO off SETLOCAL EnableDelayedExpansion REM Write list of files of the input folder to a file DIR /od /bc:\data\All_Inputfiles\*.* > D:\data\FileLis.txt Set AllInputFile= D:\data\FileLis.txt ECHO " %AllInputFile%>>D:\data\debuginfo.txt for /f "tokens=*" %%a in (%AllInputFile%) do ( ECHO "Start of Main Loop Iteration#######################">>D:\data\debuginfo.txt ECHO set "TARG_FILE=%%a" ECHO "TARG_FILE " %TARG_FILE% "line="%%a>>D:\data\debuginfo.txt ECHO ) 

 ECHO "TARG_FILE " !TARG_FILE! "line="%%a>>D:\data\debuginfo.txt 

像这样使用它。欲了解更多信息 – > http://ss64.com/nt/delayedexpansion.html