批量读取嵌套FOR循环中的文件

时间:2013-02-21 16:42:56

标签: batch-file

我尝试访问文件并在嵌套循环中读取其内容,但内部循环无法访问该文件..(批处理)

这里是代码(整个脚本的一小部分):

for %%b in (!directory!) do (
   echo File used: %%b
   for /f "delims= " %%c in (%%b) do (
      echo %%c
   )
)

问题是:

如果" %% b"等于" C:\ Documents and settings \ test \ test.txt",内部循环将尝试访问" C:\ Documents" (因为空间)。如果我在" %% b"周围加上双引号,它会将其解析为字符串而不是文件本身。

我该如何处理?该文件是动态的,我不知道它的名字......

由于

1 个答案:

答案 0 :(得分:2)

使用FOR / F读取名称中包含空格的文件时,需要使用USEBACKQ选项。 USEBACKQ改变了各种引号的语义。通常,没有引号表示文件,双引号表示字符串,单引号表示命令。 USEBACKQ选项修改为没有引号或双引号表示文件,单引号表示字符串,后引号表示命令。在命令提示符下键入HELP FOR以获取更多信息。

for %%b in (!directory!) do (
   echo File used: %%b
   for /f "usebackq delims= " %%c in ("%%b") do (
      echo %%c
   )
)