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

简介:

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

 

 
  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,如需转载请自行联系原作者


相关文章
|
机器学习/深度学习 传感器 人工智能
人工智能产业结构
人工智能产业结构
729 0
|
5月前
|
机器学习/深度学习 并行计算 算法
基于粒子群优化算法的MPPT仿真实现
基于粒子群优化算法的MPPT仿真实现
142 0
|
10月前
|
机器学习/深度学习 人工智能 安全
企业AI采用:董事会成员的视角与策略
企业AI采用:董事会成员的视角与策略
|
10月前
|
存储 数据采集 数据格式
Python自动化Office文档处理全攻略
本文介绍如何使用Python自动化处理Word、Excel和PDF文档,提升办公效率。通过安装`python-docx`、`openpyxl`、`pandas`、`PyPDF2`和`pdfplumber`等库,可以轻松实现读取、修改、创建和批量处理这些文档。具体包括:自动化处理Word文档(如读取、修改内容、调整样式),Excel文档(如读取、清洗、汇总数据),以及PDF文档(如提取文本和表格数据)。结合代码示例和实战案例,帮助你掌握高效办公技巧,减少手动操作的错误率。
628 1
|
存储 传感器 安全
|
数据库 开发者 Windows
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解-2
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解
|
12月前
|
存储 运维 安全
云上金融量化策略回测方案与最佳实践
【飞天技术沙龙—阿里云金融量化策略回测Workshop】在上海诺亚财富中心正式举行,汇聚多位行业专家,围绕量化投资的最佳实践、数据隐私安全、量化策略回测方案等议题进行深入探讨。
|
12月前
|
存储 人工智能 NoSQL
【AI系统】LLVM IR 详解
本文深入探讨了LLVM IR(中间表示)的概念,解释了其在编译器中的重要性和作用。LLVM IR作为一种抽象程度适中的中间语言,不仅涵盖了源代码的大部分信息,还支持编译器进行灵活的代码优化。文章进一步解析了LLVM IR的三地址码表示及其优点,并通过具体示例展示了LLVM IR的设计原则和内存模型,帮助读者更好地理解编译器内部的工作机制。
350 5
|
存储 Java
抽象类与抽象方法
抽象类和抽象方法是面向对象编程中的重要概念。抽象类不能被实例化,主要用于定义子类的通用接口或行为。抽象方法是在抽象类中声明但未实现的方法,要求子类必须实现这些方法。这种方式有助于构建灵活且可扩展的代码结构。
334 2
|
存储 消息中间件 资源调度
「offer来了」进程线程有啥关系?10个知识点带你巩固操作系统基础知识
该文章总结了操作系统基础知识中的十个关键知识点,涵盖了进程与线程的概念及区别、进程间通信方式、线程同步机制、死锁现象及其预防方法、进程状态等内容,并通过具体实例帮助理解这些概念。
「offer来了」进程线程有啥关系?10个知识点带你巩固操作系统基础知识