我想写个批处理(.bat),作用是将多个文件夹下的文件合并成多个文件,copy/b 文件夹1\*.txt 1.txt

说明:文件夹1、文件夹2、文件夹3 每个文件夹下都有多个.txt文件,文件夹名称就像这样往后加,文件夹4、文件夹5、文件夹6、文件夹7、文件夹8 ...

  如果只有一个文件夹,可以这样写一行:
copy/b 文件夹1\*.txt 1.txt

  如果只有三个文件夹,可以这样写三行:
copy/b 文件夹1\*.txt 1.txt
copy/b 文件夹2\*.txt 2.txt
copy/b 文件夹3\*.txt 3.txt

  现在的问题是,文件夹不是固定的数量,可能是5个,也可能是8个,请问如何做到有5个文件夹时分别合并成5个文件,有8个文件夹时合并成8件文件?

如果文件夹1,2,3……下有子目录,那下面的方法将不会合并子目录文件。

@echo off
for /d %%a in (*) do copy/b "%%a\*.txt" "%%~na.txt"
pause

追问

测试了一下,很好,很可以,真厉害!谢谢!!!
不过我想请教一下此语句的意思:for /d %%a in (*) do

追答

扫描当前目录的文件夹,不包换子文件夹。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答