我有一个文件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