0

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

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

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”周围加上双引号,它会将其解析为字符串而不是文件本身。

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

谢谢

4

1 回答 1

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
   )
)
于 2013-02-21T17:14:40.807 回答