如何批量阅读文本文件的全部内容

时间:2012-10-11 16:56:14

标签: batch-file

我想在批处理文件中阅读文本文件的全部内容。 我发现了这个:

  

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

但是“content”变量只有最后一行,我想把整个文件读成一个变量。

3 个答案:

答案 0 :(得分:4)

来自您的评论

  

有没有办法在!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

答案 1 :(得分:2)

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

@echo off
setlocal enabledelayedexpansion
set content=

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

endlocal

答案 2 :(得分:0)

在Windows的现代副本上,您也可以这样做:

powershell -Command cat "<file name>"

唯一的HEADS UP是:

powershell YourScriptFile.ps1
除非你修改系统安全设置,否则

默认不会执行...正如我在尝试构建'cat'命令时所学到的那样。也就是说,对于这样的一两个衬里,当你在大多数现代系统上利用这个时,为什么要把头撞到墙上呢。