对于/ f处理带空格的文件名

时间:2011-02-15 16:20:21

标签: file batch-file for-loop filenames

我想对文件的每一行进行一些处理。

for /f "delims=" %%i in ("%RF_PROPERTIES%") do (          
   echo %%i
)

我的RF_PROPERTIES指向带空格的文件路径(c:\ program files \ Arcot systems \ conf \ rf.properties)。它抱怨说环境变量C:\ Program Files \ Arcot没有定义,即使我已经提供了引号。如何让它运作?

2 个答案:

答案 0 :(得分:22)

尝试添加usebackq选项:

for /f "usebackq delims=" %%i in ("%RF_PROPERTIES%") do (          
  echo %%i
)

for /?的输出说明:

  

usebackq - 指定   新的语义已经生效,                     其中后引用字符串作为a执行                     命令和单引号字符串是一个                     文字字符串命令和允许使用                     引用文件名的双引号                     文件集。

答案 1 :(得分:1)

使用usebackq是一个好主意 - 但实际上你必须使用它们:

for /f "usebackq delims=" %%i in ( `dir "%RF_PROPERTIES%" /s /b` ) do (
  echo %%i
)