如何在批处理中读取一个文本文件(包括空行)?

3
我希望让空行也被输出。例如,这是我的example.txt文件。
Hello 

This is a text file. Hello World!

我用的运行代码是:

for /f "delims=" %%a in (%cd%\example.txt) DO ( 
echo. %%a
)

但是它不显示空行,而是像这样显示:
Hello
This is a text file. Hello World!

如何使它也显示空行?谢谢!


2
尝试使用Type命令(https://ss64.com/nt/type.html)。 - Hackoo
嘿,我发现如果我只输入“%%a”,而不是“echo. %%a”,它会将文件中的所有文本都视为命令。这非常有用!无论如何,谢谢。你可以在[链接]github.com/mrc2rules/LimitLess上查看我的代码,也许可以提出一些建议。 - Rahbab Chowdhury
2个回答

3

FOR /F 命令会忽略空行,但您可以使用 findstr 命令在每一行前加上行号,这样就不再有空行了。

setlocal EnableDelayedExpansion
FOR /F "delims=" %%L in ('findstr /N "^" "%~dp0\example.txt"') DO (
   set "line=%%L"
   set "line=!line:*:=!" & rem Remove all characters to the first colon
   echo(!line!
)

延迟扩展的问题在于它会从文件中删除所有的 !^ 字符。

因此,您可以切换模式。
setlocal DisableDelayedExpansion
FOR /F "delims=" %%L in ('findstr /N "^" "%~dp0\example.txt"') DO (
   set "line=%%L"
   setlocal EnableDelayedExpansion
   set "line=!line:*:=!" & rem Remove all characters to the first colon
   echo(!line!
   endlocal
)

-1
你可以尝试这个。
SETLOCAL EnableDelayedExpansion

FOR /F "tokens=* delims=" %%x IN ("TYPE example.txt") DO (
  %%x
)

将字符串 TYPE example.txt 输出到屏幕上如何回答这个问题? - Stephan
抱歉,目前我没有解释,但它能在我的情况下工作。显示文本文件中的所有行,包括空行。 - YGautomo
没有机会它做你说的那样。当引用修正时,它可能会显示文件内容,但空行绝对不会显示。 - Stephan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接