我有一个文件FileLis.txt,其中包含数据
file1.txt file2.txt file3.txt and so on.
下面的部分代码%%a
显示的结果与上面的文件列表完全相同,但是当我将相同的内容分配给变量时,它只获得第一行(set "TARG_FILE=%%a"
)。
任何人都可以解释为什么这种行为上的差异以及写作的正确方法是什么?
@ECHO off
SETLOCAL EnableDelayedExpansion
REM Write list of files of the input folder to a file
DIR /o-d /b c:\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
)
答案 0 :(得分:1)
ECHO "TARG_FILE " !TARG_FILE! "line="%%a>>D:\data\debuginfo.txt
像那样使用它。欲了解更多信息 - > http://ss64.com/nt/delayedexpansion.html