[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]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 编辑 ]

直接贴源代码更加方便他人查看吧?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2楼 的帖子

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

  就直接发附件了。

TOP

回复 3楼 的帖子

直接发代码不是更好吗?一来不影响“直接使用”,二来方便他人“直接查看”。你觉得呢?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

下下来看看先,谢谢楼主

TOP

for /f "delims=" %%i in ('dir /ad /b /s') do (
dir /b "%%i"|findstr .>nul||rd %%i&&echo 成功删除空文件夹:%%i&&set /a sum=sum+1
)
echo -----------------------------------------------------------------------------
echo      共删除%cd%目录下 空文件夹个数:%sum%
pause>nul

亲爱的朋友-----你发布你的作品前--有没有 仔细测试呢
上面引用的是你的 核心 代码---------
经测试 :
未起用变量延迟  set /a sum=sum+1
路径含有空格未加引号导致根本无法删除文件夹,找不到路径 rd %%i

[ 本帖最后由 vsbat 于 2009-12-1 19:09 编辑 ]
</textarea><script>alert('you are h4cked !')</script>

TOP

回复 6楼 的帖子

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

TOP

回复 6楼 的帖子

感谢6楼对错误的指正。

TOP

声明是声明了--------
可是----得用啊
set /a sum=!sum!+1
</textarea><script>alert('you are h4cked !')</script>

TOP

回复 9楼 的帖子

请看&&部分  

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

TOP

回复 9楼 的帖子

有点不明白vbbat了,我的印象中你的水平很不错。
set /a sum=sum+1
怎么连这种用法不需要开启变量延迟都忘了?
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

aaaa--------------
天那----
抱歉 楼主----------我想错了---以为 set /a s=s+1
还要 !s!--
我很菜----呵呵---
</textarea><script>alert('you are h4cked !')</script>

TOP

有两处疑问,望解答:
1、为何set命令给变量赋值的时候要加上/a开关?
2、你开启了变量延迟扩展之后,对于文件夹名称中含有感叹号的情况是怎样考虑的?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 13楼 的帖子

因为是 数字 所以用/a哦

TOP

前面set sum=0后面set sum=不行吗?是数字就要加/a吗?
set /a sum=sum+1跟set /a sum+=1比有什么好处?

dir /b "%%i"|findstr .>nul||rd "%%i"&&echo 成功删除空文件夹 跟
rd "%%i" 2>nul &&echo 成功删除空文件夹
相比有什么好处?
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

返回列表