爱咪哆 发表于 2017-11-27 15:17

子文件夹合并(加强版)脚本

本帖最后由 爱咪哆 于 2017-11-27 15:33 编辑

1.移动所有文件至当前目录
2.删除空文件夹
3.可删除隐藏空文件夹

@echo off
(for /f "delims=" %%a in ('dir /b /s /ad') do (
      move /-y "%%a\*.*" "%%a\.."&&rd %%a
))>nul 2>nul


for /f "delims=" %%i in ('dir /ad /b /s') do call :rd_dir_empty "%%i"
goto :eof
rem ======= 删除空目录 =========
:rd_dir_empty
rd %1 2>nul||goto :eof
set dir_route=%1
for /f "delims=" %%i in (%dir_route%) do (
   set dir_route="%%~dpi"
   for /f "delims=" %%j in ('dir /ad /b "%%~dpi"')do rd "%%~dpi%%j" 2>nul||goto :eof
)
:: 把路径最后的\去掉,以便set route_deepest="%%~dpi"能取到上一层路径
if "%dir_route:~-2,1%"=="\" set dir_route="%dir_route:~1,-2%"
if /i not "%cd%"==%dir_route% call :rd_dir_empty %dir_route%
goto :eof

蜡笔丶小新 发表于 2017-11-27 15:19

看看思路

qiangmobile 发表于 2017-11-27 15:22

这个太强大了

sundc 发表于 2017-11-27 15:23

好东西,对于理解DOS命令有帮助

纳兰容若 发表于 2017-11-27 15:30

多谢楼主分享{:301_978:}

kanglehao 发表于 2017-11-27 15:31

不是特别好~同名文件会覆盖,也没提示很不安全~

angeluron 发表于 2017-11-27 15:40

这个太强大了,感谢分享啊

comeluder 发表于 2017-11-27 16:16

建议楼主加一个重命名功能,因为有时候各文件夹的名字都是1,2,3,4这样的

camistri 发表于 2017-11-27 16:21

我是小白 不太明白 这是用来干嘛的 求大神指点指点

ftmovie 发表于 2017-11-27 19:16

批处理脚本这个好
页: [1] 2
查看完整版本: 子文件夹合并(加强版)脚本