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

Batch - Read lines of one file except the ones starting with #

我想逐行读取一个文件,但我也想忽略以#开头的行。 我试过使用 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

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

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

老实说,我不敢相信 eol 没有 work.As 替代方案,您可以试试这个:

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