遍历每个文件夹并连接文件(在每个文件夹中输出组合文件)

时间:2014-06-15 14:34:59

标签: windows batch-file command-prompt

我希望遍历多个文件夹并连接所有.html文件,并通过批处理文件输出combined.html for EACH文件夹。

更好的是,我希望输出一个组合的[foldername] .html。例如,对于Folder1,该文件夹中的输出连接文件将是combinedFolder1.html。

我一直在使用命令提示符中的copy命令进入每个文件夹以连接文件:

copy *.html combined.html

如何循环浏览多个文件夹并运行复制命令进行连接,并使用批处理文件为每个文件夹输出combined.html(或组合[foldername] .html)?感谢。

2 个答案:

答案 0 :(得分:0)

在主文件夹中启动它。它应该做你需要的。

@echo off
for /d /r %%a in (*) do (
   pushd "%%a"
   echo "%%a"
      copy *.html tmp.tmp >nul
      move /y tmp.tmp "combined%%~nxa.html" >nul
   popd
)
pause

答案 1 :(得分:0)

单行命令下面应该做你需要的:

find . -type d ! -path '.' | xargs -i_folder sh -c "cd _folder; cat *html > combined\$(echo _folder | sed 's#.*/##').html"

我还要提到的是,上面假设你的目录名称中没有空格。

如果确实如此,那么这里的一些变化将解决问题:

find . -type d ! -path '.' -print0 | xargs --null -i_folder sh -c "cd \"_folder\"; cat *html > \"combined\$(echo _folder | sed 's#.*/##').html\""