Windows批处理:For循环

时间:2014-04-23 07:05:49

标签: windows batch-file for-loop

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

1 个答案:

答案 0 :(得分:1)

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

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