8

我想读取批处理文件中文本文件的全部内容。我找到了这个 :

for /f "delims=" %%x in (file.txt) do set content=%%x

但是“内容”变量只有最后一行,我想将整个文件读入一个变量。

4

3 回答 3

9

从你的评论

有什么方法可以在 !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
于 2012-10-19T15:10:06.313 回答
2

我不确定您在“内容”变量中寻找的确切格式,但是这段代码应该可以解决问题(代码只是将内容设置为空白,然后遍历 file.txt 的每一行并将该行复制到内容中使用延迟扩展):

@echo off
setlocal enabledelayedexpansion
set content=

for /f "delims=" %%x in (file.txt) do (set content=!content! %%x)
echo !content!

endlocal
于 2012-10-11T18:19:12.283 回答
-2

在 Windows 的现代副本上,您还可以执行以下操作:

powershell -Command cat "<file name>"

唯一需要注意的是:

powershell YourScriptFile.ps1

除非您修改系统安全设置,否则默认情况下不会执行...正如我在尝试构建“cat”命令时了解到的那样。也就是说,对于这样的一两个衬垫,当您可以在大多数现代系统上利用这一点时,为什么还要用头撞墙呢。

于 2014-01-03T14:17:55.587 回答