Для / f обработки имени файла с пробелами - PullRequest
14 голосов
/ 15 февраля 2011

Я хочу выполнить некоторую обработку каждой строки файла.

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 ]

22 голосов
/ 15 февраля 2011

Попробуйте добавить параметр usebackq:

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

Объяснение с выхода for /?:

usebackq - указывает, что новая семантика в силе, где строка в кавычках выполняется как команда и одиночная строка в кавычках является команда литеральной строки и позволяет использовать двойные кавычки для цитирования имен файлов в файл набора.

1 голос
/ 11 апреля 2015

Использование usebackq - хорошая идея, но вы должны использовать их:

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