2

我正在编写一个批处理脚本来编译文本文件中列出的所有文件,但我不知道如何将一行连接到预先存在的变量的末尾。

批处理脚本:

@echo off
SET files=

for /f "tokens=*" %%a in (files.txt) do (
    SET files=%files% %1 %%a
)

echo %files%
pause

这是 files.txt :

Main.cpp
Player.cpp

在运行这个输出的那一刻: //gyazo.com/5f397b818fee60a631a24e9efbca3abd.png

(我无法发布图片,所以如果有人可以,我将不胜感激)

什么时候应该输出:“Main.cpp Player.cpp”

4

1 回答 1

2

如果您不使用CALLENABLEDELAYEDEXPANSION变量“Files”的值不能在FOR循环内重新分配,那么您使用的参数 var %1也不是必需的,因为使用/传递了任何参数.

@Echo OFF

For /F "Usebackq Tokens=*" %%# in (
    "Files.txt"
) Do (
    Call Set "Files=%%Files%% %%#"
)

Echo Files = %Files%

Pause&Exit

Files.txt 内容:

test1.cpp
test2.cpp
test3.cpp

输出:

Files =  test1.cpp test2.cpp test3.cpp
于 2013-04-27T19:49:13.747 回答