我想在批处理文件中阅读文本文件的全部内容。 我发现了这个:
for / f“delims =”%% x in(file.txt)do set content = %% x
但是“content”变量只有最后一行,我想把整个文件读成一个变量。
答案 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'命令时所学到的那样。也就是说,对于这样的一两个衬里,当你在大多数现代系统上利用这个时,为什么要把头撞到墙上呢。