子文件夹合并(加强版)脚本
本帖最后由 爱咪哆 于 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 看看思路 这个太强大了 好东西,对于理解DOS命令有帮助 多谢楼主分享{:301_978:} 不是特别好~同名文件会覆盖,也没提示很不安全~ 这个太强大了,感谢分享啊 建议楼主加一个重命名功能,因为有时候各文件夹的名字都是1,2,3,4这样的 我是小白 不太明白 这是用来干嘛的 求大神指点指点 批处理脚本这个好
页:
[1]
2