删除当前及子文件夹中的空目录

简介:

在对文件进行操作的工程中不免会出现空目录的情况,你想怎么去删除那些空目录一个一个去找,然后删除?不会吧,这也太累了,用批处理吧,帮你提高工作效率的,它会准确的判断然后进行删除。

 

 
  1. @echo off 
  2. for /f "tokens=*" %%a in ('dir /b /ad /s "目标路径"^|sort /r') do rd "%%a" 2>nul 
  3. pause 
  4. goto :eof 
  5.  
  6. @echo off 
  7. for /f "delims=" %%i in ('dir /ad /b /s') do call :rd_dir_empty "%%i" 
  8. goto :eof 
  9.  
  10.  
  11. rem ======= 删除空目录 ========= 
  12. :rd_dir_empty 
  13. rd %1 2>nul||goto :eof 
  14. set dir_route=%1 
  15. for /f "delims=" %%i in (%dir_route%) do ( 
  16.     set dir_route="%%~dpi" 
  17.     for /f "delims=" %%j in ('dir /ad /b "%%~dpi"')do rd "%%~dpi%%j" 2>nul||goto :eof 
  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 

代码的思路是这样的:

思路:列举所有目录(包括子目录)路径,然后,删除第一个路径最后一节上的文件夹;如果能删除这个文件夹,则删除上一层文件夹;如果还能删除,则继续上一步……直到当前目录为止;如果其中某一节不能删除,立即跳出,开始删除下一条路径中,最后一节上的文件夹……如此反复。



本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/416695,如需转载请自行联系原作者


相关文章
|
7月前
rmdir 删除一个空的目录
rmdir 删除一个空的目录。
44 3
|
7月前
|
弹性计算 运维 Shell
删除某个目录下大小为 0 的文件
【4月更文挑战第28天】
57 0
删除多级目录
删除多级目录
57 0
C#编程-114:文件夹操作之删除
C#编程-114:文件夹操作之删除
107 0
C#编程-114:文件夹操作之删除
C#编程-113:文件夹操作之创建
C#编程-113:文件夹操作之创建
132 0
C#编程-113:文件夹操作之创建
C#编程-32:复制移动删除文件或文件夹
C#编程-32:复制移动删除文件或文件夹
102 0
C#编程-22:判断文件是否存在并创建文件(夹)
C#编程-22:判断文件是否存在并创建文件(夹)
128 0