[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [分享]批处理清理空文件夹(与网上的不同)

原创,  请管理员移至原创区(目前本人权限不足)

清理空文件夹,节省资源
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. mode con cols=80 lines=25
  4. title 空文件夹清理 -
  5. color 3F
  6. echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  7. echo ☆                                                                          ☆
  8. echo ★                       空文件夹清理工具                                   ★
  9. echo ☆                                                                          ☆
  10. echo ★                                         BY :  九影蓝翼(bluewing009)   ★
  11. echo ☆                                                                          ☆
  12. echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  13. set /a sum=0
  14. echo.
  15. echo.
  16. echo 说明此工具会删除当前所在目录及其子目录下的空文件夹,以节省空间。
  17. echo.
  18. echo       当前工作目录为: %cd%
  19. echo.
  20. echo                                                   任意键   开始删除空文件夹
  21. pause>nul
  22. echo -----------------------------------------------------------------------------
  23. for /f "delims=" %%i in ('dir /ad /b /s') do (
  24. dir /b "%%i"|findstr .>nul||rd "%%i"&&echo 成功删除空文件夹:%%i&&set /a sum=sum+1
  25. )
  26. echo -----------------------------------------------------------------------------
  27. echo      共删除%cd%目录下 空文件夹个数:%sum%
  28. pause>nul
  29. set sum=
  30. exit
复制代码
修正:可以删除带空格的文件夹。

[ 本帖最后由 bluewing009 于 2009-12-4 09:32 编辑 ]

回复 2楼 的帖子

考虑到这是成品,可以直接使用。

  就直接发附件了。

TOP

回复 6楼 的帖子

延迟在开头就声明了。至于空格文件夹的问题,是我考虑不周全,需要在rd命令加""。   现在是手机登陆,稍后上传修改。或者请自行添加""。

TOP

回复 6楼 的帖子

感谢6楼对错误的指正。

TOP

回复 9楼 的帖子

请看&&部分  

不是很明白你的意思...

TOP

回复 13楼 的帖子

因为是 数字 所以用/a哦

TOP

回复 15楼 的帖子

举个例子:
set a=1+2
set /a=1+2

第一个就是a=1+2,而第二个才是3


这就是 我加/a的原因 ,凡是涉及到运算的  加上就可以了
至于你写的 rd "%%i" 2>nul &&echo 成功删除空文件夹
不是很明白你什么意思.......

[ 本帖最后由 bluewing009 于 2009-12-2 00:51 编辑 ]

TOP

回复 18楼 的帖子

哎呀~~  晕  是set/a a=1+2   嘿嘿  a被我贪污了  (-_-)

TOP

回复 20楼 的帖子

天 ~~~
最后的 set 是把sum值还原,因为sum最为常用的计数量,怕干扰到别的bat

貌似 应该是 set sum=  啊 ,  奇怪了............  ???! ! !     汗..........
还是用endlocal的好....   哭了....

[ 本帖最后由 bluewing009 于 2009-12-2 22:15 编辑 ]

TOP

回复 22楼 的帖子

那个噢~~~   是为了界面好看,人性化一点。

TOP

回复 24楼 的帖子

...........   哪有忽视你啊~~

嘿嘿  何况你的图片这么PL

  你说的那个a/b/c的问题,  因为只是用dir的.来判断,所以 只是以你运行时的情况为准

  当然,你运行一次就删除了c,再一次就是b  递推。

  你想一次搞定  建议你判断sum的值  当sum不是0就再次执行,等于0就退出....

TOP

回复 27楼 的帖子

呵呵  主要你那个背景有个wing哦

TOP

返回列表