防止cmd在空格分隔符上读取破坏行

时间:2012-03-30 08:28:05

标签: apache batch-file batch-processing

@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 个答案:

答案 0 :(得分:2)

我没有尝试以下选项,我敢打赌。请注意,=之后没有空格。

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

答案 1 :(得分:2)

在命令中添加“delims =”,以便处理包含空格的行。所以,你的代码应该看起来像这样:

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

此外,您可以在列表中添加更多分隔符,例如逗号等。为此,您只需将字符添加到“delims =,+”

相关问题