无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 20779|回复: 16
打印 上一主题 下一主题

一个删除当前目录下及其子目录中的空文件夹的批处理

[复制链接]
跳转到指定楼层
1#
发表于 2006-12-28 16:11:34 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
  删除空文件夹的批处理:

  1. @echo off
  2. :: 思路:列举所有目录(包括子目录)路径,然后,删除第一个路径最后一节上的文件夹;
  3. ::   如果能删除这个文件夹,则删除上一层文件夹;如果还能删除,则继续上一步……
  4. ::   直到当前目录为止;如果其中某一节不能删除,立即跳出,开始删除下一条路径中
  5. ::   最后一节上的文件夹……如此反复。
  6. ::
  7. :: code by JM 2006-12-25 bbs.cn-dos.net CMD@XP

  8. for /f "delims=" %%i in ('dir /ad /b /s') do call :rd_dir_empty "%%i"
  9. goto :eof


  10. rem ======= 删除空目录 =========
  11. :rd_dir_empty
  12. rd %1 2>nul||goto :eof
  13. set dir_route=%1
  14. for /f "delims=" %%i in (%dir_route%) do (
  15.     set dir_route="%%~dpi"
  16.     for /f "delims=" %%j in ('dir /ad /b "%%~dpi"')do rd "%%~dpi%%j" 2>nul||goto :eof
  17. )
  18. :: 把路径最后的\去掉,以便set route_deepest="%%~dpi"能取到上一层路径
  19. if "%dir_route:~-2,1%"=="" set dir_route="%dir_route:~1,-2%"
  20. if /i not "%cd%"==%dir_route% call :rd_dir_empty %dir_route%
  21. goto :eof
复制代码
2#
 楼主| 发表于 2006-12-29 16:09:12 | 显示全部楼层
  确实不错,我把简单的事情搞复杂了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-29 20:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表