批处理 - 读取一个文件的行,但以#开头的行除外

时间:2015-02-21 10:18:41

标签: batch-file windows-8

我想逐行读取文件,但我也想忽略以#开头的行。 我曾尝试使用this solution,但它对我不起作用。我在Windows 8下。

读取所有行的批处理文件

@echo off
setlocal EnableDelayedExpansion
for /f "Tokens=* Delims=" %%x in (aliases.txt) do (
    set aliases=!aliases! "%%x"
)

aliases.txt

line 1 to read
# comment to ignore
line 2  to read

2 个答案:

答案 0 :(得分:2)

eol字符是指定行结束注释字符的字符。此字符后的任何内容都不会被读取。默认情况下,它是;,但您可以将其设置为您想要的任何内容。

@echo off
setlocal EnableDelayedExpansion
for /f "eol=# Tokens=* Delims=" %%x in (aliases.txt) do (
     set aliases=!aliases! "%%x"
)

答案 1 :(得分:2)

老实说,我无法相信eol不起作用。作为替代方案,你可以试试这个:

@echo off
setlocal EnableDelayedExpansion
for /f "Tokens=* Delims=" %%x in ('findstr /v /b "#" aliases.txt') do (
    set aliases=!aliases! "%%x"
)