我想读取批处理文件中文本文件的全部内容。我找到了这个 :
for /f "delims=" %%x in (file.txt) do set content=%%x
但是“内容”变量只有最后一行,我想将整个文件读入一个变量。
我想读取批处理文件中文本文件的全部内容。我找到了这个 :
for /f "delims=" %%x in (file.txt) do set content=%%x
但是“内容”变量只有最后一行,我想将整个文件读入一个变量。
从你的评论
有什么方法可以在 !content! 中包含行!
我假设你想要在你的内容变量中换行,这可以通过一个额外的变量来完成。
@echo off
setlocal EnableDelayedExpansion
set LF=^
rem ** The two empty lines are necessary
set "content="
for /f "delims=" %%x in (file.txt) do (
set "content=!content!%%x!LF!"
)
echo(!content!
endlocal
我不确定您在“内容”变量中寻找的确切格式,但是这段代码应该可以解决问题(代码只是将内容设置为空白,然后遍历 file.txt 的每一行并将该行复制到内容中使用延迟扩展):
@echo off
setlocal enabledelayedexpansion
set content=
for /f "delims=" %%x in (file.txt) do (set content=!content! %%x)
echo !content!
endlocal
在 Windows 的现代副本上,您还可以执行以下操作:
powershell -Command cat "<file name>"
唯一需要注意的是:
powershell YourScriptFile.ps1
除非您修改系统安全设置,否则默认情况下不会执行...正如我在尝试构建“cat”命令时了解到的那样。也就是说,对于这样的一两个衬垫,当您可以在大多数现代系统上利用这一点时,为什么还要用头撞墙呢。