Batch file 批读取一个文件的行,但以#

Batch file 批读取一个文件的行,但以#,batch-file,windows-8,Batch File,Windows 8,我希望逐行读取文件,但也希望忽略以#开头的行。 我尝试过使用,但它对我不起作用。我在Windows8下 读取所有行的批处理文件 @echo off setlocal EnableDelayedExpansion for /f "Tokens=* Delims=" %%x in (aliases.txt) do ( set aliases=!aliases! "%%x" ) 别名.txt line 1 to read # comment to ignore line 2 to read

我希望逐行读取文件,但也希望忽略以#开头的行。 我尝试过使用,但它对我不起作用。我在Windows8下

读取所有行的批处理文件

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

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

下线字符是指定行结束注释字符的字符。此字符结束后,不会读取该行中的任何内容。默认情况下,它是
,但您可以将其设置为任意值

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

下线字符是指定行结束注释字符的字符。此字符结束后,不会读取该行中的任何内容。默认情况下,它是
,但您可以将其设置为任意值

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

老实说,我不相信下线不起作用。作为替代,您可以尝试以下方法:

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

老实说,我不相信下线不起作用。作为替代,您可以尝试以下方法:

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

eol
应该可以工作,
eol
应该可以工作……我不明白,但现在可以了。我可能有编码问题吗?我刚刚使用了ASCII编码,然后这就行了……我从来没有听说过编码问题会破坏eol,但公平地说,eol是我从未有过太多用途的东西之一。也就是说,我(可能是错误地)认为
eol
必须是
循环引用部分中的第一件事才能正常工作。否。我把它放在第二个位置。我还有另一个想法:也许我的批处理文件的旧版本中有一个隐藏的文件(我有时会遇到Python脚本的问题)。我不明白,但现在可以了。我可能有编码问题吗?我刚刚使用了ASCII编码,然后这就行了……我从来没有听说过编码问题会破坏eol,但公平地说,eol是我从未有过太多用途的东西之一。也就是说,我(可能是错误地)认为
eol
必须是
循环引用部分中的第一件事才能正常工作。否。我把它放在第二个位置。我还有另一个想法:也许我的批处理文件的旧版本中有一个隐藏的文件(我有时会遇到Python脚本的问题)。谢谢你的这种其他方法谢谢你的这种其他方法