我希望遍历多个文件夹并连接所有.html文件,并通过批处理文件输出combined.html for EACH文件夹。
更好的是,我希望输出一个组合的[foldername] .html。例如,对于Folder1,该文件夹中的输出连接文件将是combinedFolder1.html。
我一直在使用命令提示符中的copy命令进入每个文件夹以连接文件:
copy *.html combined.html
如何循环浏览多个文件夹并运行复制命令进行连接,并使用批处理文件为每个文件夹输出combined.html(或组合[foldername] .html)?感谢。
答案 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\""