在批处理脚本中连接文件

时间:2014-04-01 14:44:48

标签: file batch-file path concatenation

我有一个批处理脚本,可以连接索引文件中列出的文件内容。它曾经工作,直到路径中有空间。我编辑了一下,但它是这样的:

SET INPUT="C:\Has Spaces In Path\indexfile.txt"
SET ROOT="C:\Has Spaces In Path\inputdirectory\"
SET OUTPUT="C:\Has Spaces In Path\outputdirectory\mergedfile.txt"

FOR /F %%A IN (%INPUT%) DO TYPE "%ROOT%%%A" >> "%OUTPUT%"

我遇到的问题是%INPUT%现在似乎在for循环中被标记化,如果我在它周围加上引号(即"%INPUT%")它也不起作用。有没有办法让这个循环遍历INPUT指定的文件中的每一行并将内容连接到OUTPUT文件?

感谢。

编辑:根据答案,这就是我想要的:

FOR /F %%A IN ('type "%INPUT%"') DO TYPE "%ROOT%%%A" >> "%MERGED%"

2 个答案:

答案 0 :(得分:2)

FOR /F %%A IN ('type %INPUT%') DO echo %%A
括号中的

将导致执行语句并像文件源一样使用输出

答案 1 :(得分:1)

FOR /F "usebackq" %%A IN ("%INPUT%") DO TYPE "%ROOT%%%A" >> "%OUTPUT%"

或者,更好的是:

(FOR /F "usebackq" %%A IN ("%INPUT%") DO TYPE "%ROOT%%%A") > "%OUTPUT%"

有关详细信息,请参阅:FOR /?