批量删除所有空文件夹

作者: nick 分类: windows, 学习 发布时间: 2010-05-10 08:17 ė 64条评论

如何快速删除磁盘上的空文件夹:

假设我们要清理D盘上的空文件夹,那么请先用记事本建一个名为“kill.bat”的文件,在该文件中输入以下内容:

dir d: /ad /b /s |sort /r >>d:kill.txt

For /f %%i in (d:kill.txt) DO rd %%i

echo y |del d:kill.txt

双击该文件,D盘上所有的空文件夹很快就消失的无影无踪了。

至此我们就可以制作出删除所有盘符上空文件夹的小软件了。

将下面的内容复制到记事本中,然后保存为.bat后缀即可!

然后双击运行,便将所有的盘符上的空文件夹迅速删除了!

@echo 欢迎使用批量处理空文件夹1.0版!
@pause
@echo 清理C盘
dir c: /ad /b /s |sort /r >>c:kill.txt
For /f %%i in (c:kill.txt) DO rd %%i
echo y |del c:kill.txt
@echo 清理D盘
@pause
dir d: /ad /b /s |sort /r >>d:kill.txt

For /f %%i in (d:kill.txt) DO rd %%i

echo y |del d:kill.txt
@echo 清理E盘
@pause
dir e: /ad /b /s |sort /r >>e:kill.txt

For /f %%i in (e:kill.txt) DO rd %%i

echo y |del e:kill.txt
@echo 清理F盘
@pause
dir f: /ad /b /s |sort /r >>f:kill.txt

For /f %%i in (f:kill.txt) DO rd %%i

echo y |del f:kill.txt
@echo 清理G盘
@pause
dir g: /ad /b /s |sort /r >>g:kill.txt

For /f %%i in (g:kill.txt) DO rd %%i

echo y |del g:kill.txt
@echo 清理完毕,谢谢使用!

注意:根据自己电脑上所分的磁盘数。可以增加和删除相应的磁盘内容。

提示:“dir d:”表示列D盘上的所有目录包括子目录列表,其中参数“/ad”表示列所有目录;参数“/b”表示只列出文件夹名称而不显示标题信息或摘要:参数“ /s”表示搜索,即查找D盘中的所有文件夹和子文件夹;“|”是管道符号,将Dir命令的结果传递给“sort”命令;“sort”命令表示排序;“ /r”表示逆序列排序。之所以要逆序列排序,是因为通过逆序列排序后,D盘上的所有子文件夹总是会位于其父文件夹的前面,这样在用For命令删除空文件夹 时,空的子文件夹被首先删除了,因此空的父文件夹就可以删除了。否则,因空的父文件夹中尚有空的子文件夹,会造成无法删除的情况。 “>>d:kill.txt”的作用是让屏幕回显重新定位到“d:kill.txt”文件中。

For 命令中参数“/f”的作用是让For命令从指定的文件中读取数据作为变量,示例是从Dir的结果文件“d:kill.txt”文件中读取数据,每次读取一 行传递给RD命令;RD命令的作用是删除由For命令传递过来的每一个文件夹,因RD命令无法删除尚有内容的文件夹,所以经过For命令的循环后,只是删 除了所有的空文件夹,有内容的文件夹会完好无损地被保留下来。

谢谢使用,多多支持。

本文出自 传播、沟通、分享,转载时请注明出处及相应链接。

本文永久链接: https://www.nickdd.cn/?p=398

4条评论

  1. nick 2010年11月18日 04:00 回复

    @dd
    这个只是针对特定文件夹用的,我多用在打补丁包。对于系统这东西,可不是随便使用的。

  2. dd 2010年11月17日 03:13 回复

    说起这个我好有感触的
    当时把XP windows目录下一个空目录删了
    发现ADSL不能拨号了
    发现拨号的服务启动失败

    想了好办天才记起来干过为事

发表评论

您的电子邮箱地址不会被公开。

Ɣ回顶部