【问题标题】:Concatenating files in a Batch script在批处理脚本中连接文件
【发布时间】:2014-04-01 14:44:47
【问题描述】:

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

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%"

【问题讨论】:

    标签: file batch-file path concatenation


    【解决方案1】:
    FOR /F %%A IN ('type %INPUT%') DO echo %%A
    
    括号中的

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

    【讨论】:

    • 感谢我设法让它在此基础上进行了一些处理。
    【解决方案2】:
    FOR /F "usebackq" %%A IN ("%INPUT%") DO TYPE "%ROOT%%%A" >> "%OUTPUT%"
    

    或者,更好的是:

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

    更多详情请见:FOR /?

    【讨论】:

      猜你喜欢
      • 2022-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-18
      • 1970-01-01
      • 2013-05-04
      • 2011-03-01
      • 2018-10-07
      相关资源
      最近更新 更多