如何用CMD批处理提取所有子文件夹内容按文件夹名称命名并提取到一个文件夹中

如何用批处理提取一堆文件夹中的子文件,(比如文件夹1、文件夹2、文件夹3。。。文件夹N。每个子文件夹夹下面只有一个文件。。我要把文件夹1下面的文件重命名为文件夹1、文件夹2下面的文件重命名为文件夹2、文件夹3下面的文件重命名为文件夹3、。。。把然后把重命名后的文件提取到一个文件夹中。。并删除已经空掉了的文件夹。)我要并将其重命名为上一层文件夹的名称。。然后将所有文件夹下面的文件提取出来放到一个文件夹中。。

@Echo Off
For /f "tokens=*" %%i in ('dir /ad /b /s "%~dp0"') do (
For /f "tokens=*" %%j in ('dir /a-d /b /s "%%i\*.*"') do (
Ren "%%j" "%%~nxi%%~xj"
Move "%%i\%%~nxi%%~xj" "D:\文件提取到此文件夹\"
Rd /q "%%i"))
Pause

以上内容保存为批处理文件(xx.bat),和要提取文件的子文件夹放在一起即可,例如 和 文件夹1、文件夹2 放在一起.

默认保留文件后缀名,如果不保留文件后缀名请删除 "%%~xj"

追问

非常不错。。可以完美实现。那如果我想把重命名后的文件拷贝到和那个批处理文件同样的文件夹下面要怎么实现呀?。。

追答

拷贝还是移动?
拷贝 Copy "%%i\%%~nxi%%~xj" "%~dp0"
移动 Move "%%i\%%~nxi%%~xj" "%~dp0"

温馨提示:答案为网友推荐,仅供参考