Batch file Windows批处理:从文本文件中的行生成字符串

Batch file Windows批处理:从文本文件中的行生成字符串,batch-file,Batch File,我有一个简单的文本文件,每个文件包含一个文件名。我想合并所有这些文件。我的计划是读取文本文件,构建一个类似“filename1+file2+f3”的字符串,然后将其用作复制/b的参数 但是,我无法正确读取文件 以下是我现在拥有的: SET x= FOR /F %%G IN (merge.txt) DO SET x=%x%+%%G ECHO %x% 但是,此处的“递归”似乎无法正常工作,%x%只是被设置为“+fl”,其中fl是文件中的最后一个文件名 如何正确执行此操作?您的逻辑是正确的,但您只是

我有一个简单的文本文件,每个文件包含一个文件名。我想合并所有这些文件。我的计划是读取文本文件,构建一个类似“filename1+file2+f3”的字符串,然后将其用作复制/b的参数

但是,我无法正确读取文件

以下是我现在拥有的:

SET x=
FOR /F %%G IN (merge.txt) DO SET x=%x%+%%G
ECHO %x%
但是,此处的“递归”似乎无法正常工作,%x%只是被设置为“+fl”,其中fl是文件中的最后一个文件名


如何正确执行此操作?

您的逻辑是正确的,但您只是错过了延迟的扩展使用

SETLOCAL EnableDelayedExpansion

SET "x="
FOR /F %%G IN (merge.txt) DO SET x=!x!+%%G
ECHO %x%

REM Trim the leading +
SET x=%x:~1,999%
ECHO %x%    

ENDLOCAL
如果没有延迟扩展,
%x%
仅在
FOR
循环开始时进行计算,因此每次迭代都将为空。通过启用延迟扩展,
!x(此符号)在每次迭代时都会被计算,因此它将构建您正在寻找的复合字符串