从文件中的所有行创建String并将其存储在变量中

时间:2019-02-12 17:06:22

标签: windows loops batch-file

我目前有问题。这个问题似乎涵盖面很广,但是我发现的所有答案都不适用于我。我想做的就是这个。我有一个多行文本文件。我想将所有这些连接到一个像这样的字符串

[LINE1]\n[LINE2]\n[LINE3]...

现在,遍历我发现的文件行的答案是可以理解的

for /F "delims=" %%i in (filename.key) do set content=%content% %%i

现在的问题是,我的批处理文件确实在文件中循环,但是%content%在每个循环中似乎都是空的。因此,毕竟,内容仅与文件的最后一行匹配。我在做什么错了?

1 个答案:

答案 0 :(得分:1)

您将需要修改代码以向其添加delayed expansion

@echo off
setlocal EnableDelayedExpansion

for /F "delims=" %%A in (filename.key) do set "content=!content! %%A"
rem Your other code here....:

但我会这样做:

@echo off
SETLOCAL EnableDelayedExpansion

set "content="

for /F "delims=" %%A in (./config/git/read.key) do (
    if defined content (
        set "content=!content!\n%%A"
    ) else (
        set "content=%%A"
    )
)

echo %content%

rem Your other code here....:

您可以选择所需的方式。