我有一个批处理脚本,可以连接索引文件中列出的文件内容。它曾经工作,直到路径中有空间。我编辑了一下,但它是这样的:
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%"
答案 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 /?