【问题标题】:Windows batch: For loop [duplicate]Windows批处理:For循环[重复]
【发布时间】:2014-04-23 07:05:49
【问题描述】:

我有一个文件 FileLis.txt,其中包含的数据为

文件1.txt 文件2.txt file3.txt 等等。

下面的部分代码%%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 
)

【问题讨论】:

    标签: windows batch-file for-loop


    【解决方案1】:
    ECHO "TARG_FILE " !TARG_FILE! "line="%%a>>D:\data\debuginfo.txt
    

    这样使用。更多信息 -> http://ss64.com/nt/delayedexpansion.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 2015-04-17
      相关资源
      最近更新 更多