Предотвратить чтение строки через разделитель - PullRequest
2 голосов
/ 30 марта 2012
@echo off
for /f %%a in (httpd.conf) do (
echo %%a
)

У меня есть файл, который выглядит следующим образом:

ServerRoot "C:/xampp/apache"
Listen 80
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so

однако, когда я запускаю командный файл, он выводит это:

ServerRoot
Listen
LoadModule
LoadModule

, кажется, что cmdтолько выборка строки ДО первого символа пробела ... Кто-нибудь знает, как получить всю строку?

Я пытался добавить параметры в команду for ... они были опробованы ивсе они терпят неудачу:

for /f "eol=# tokens=1-9 delims=¬"
for /f "tokens=* delims=¬"
for /f "tokens=* delims=:\="
for /f "tokens=1-6"

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Добавьте «delims =» в вашу команду, чтобы она обрабатывала строки, содержащие в них пробелы.Итак, ваш код должен выглядеть примерно так:

@echo off
for /f "delims=" %%a in (httpd.conf) do (
echo %%a
)

Также вы можете добавить в свой список дополнительные разделители, такие как запятые и т.д.

2 голосов
/ 30 марта 2012

Бьюсь об заклад, вы не пробовали описанный ниже вариант. Обратите внимание, что после =.

пробела нет.
for /f "delims=" %%a in (httpd.conf) do (
    echo %%a
)
...