1、问题产生:

  前段时间得到一份资源,号称有近500个G的学习资料,花了我好长时间下载下来,顺手拿了个文件查重工具查了下,发现这500个G水分很大,资料重复率很高,于是当然就会查重删除重复文件,这样导致了该文件夹下存在很多空目录,虽然不占多少空间,但是会影响观感和索引,于是决定删除空文件夹。

2、问题解决过程

  问题的解决方法是多样性的,最简单粗暴的就是手动删除,但是500G的资料,天知道有多少空文件夹,显然不能手动,毕竟我这么懒。这时候就要问问 网络搜索引擎 是否有偷懒的办法。网上有说软件清理的,emmm…有点心动,但是为一些不占多少空间的空目录再去下一个几M的软件,有点不爽。于是,决定采用另一种方法,命令行。

  网上大多给出了批处理bat删除空文件夹的命令。我们来简单解析一下:

@echo off
for /f "delims=" %%a in ('dir . /b /ad /s ^|sort /r' ) do rd /q "%%a" 2>nul
  1. @echo off 不说了,关闭回显
  2. for 命令,循环读取执行操作,下图给出简单介绍,详情可见for /?
  3. dir . /b /ad /s,使用空格式(/b)显示指定目录(当前目录(.))和所有子目录中(/s)的文件属性(/a)为目录的文件(目录也是一种特殊的文件)。简单说就是递归列出所有目录。更多详情见 dir /?
  4. sort /r 逆序排序。| 为管道符,将|之前的命令的输出作为之后命令的输入。这里的效果就是 逆序排列,这样子目录就会排列在前面了。
  5. for /f "delims=" %%a in ('dir . /b /ad /s ^|sort /r') do 把结果传给for循环,依次执行do后面的命令。"delims="用于指定分隔符。因为()中是嵌套的命令,所以要用单引号’’。'dir . /b /ad /s ^|sort /r'这里的^是转义字符。
  6. rd /q ”。rd命令默认是删除空文件夹,/q是安静模式,不要求确认。详情见rd /?
  7. 2>nul,没找到这方面资料,推测应该与Linux的2>/dev/null同性质。2表示错误输出。参考文章《2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null - 中琦2513的猿生 - CSDN博客》
  8. for /f "delims=" %%a in ('dir . /b /ad /s ^|sort /r' ) do rd /q "%%a" 2>nul总体来说就是利用for循环挨个删除()中命令产生的目录列表中的空目录,没有回显和报错信息。

  应该写的很详细了吧。批命令有个好处,就是写一次你就可以多次使用了。这个批处理是从当前目录开始查找,因此每次使用只需要把这个bat文件移动到你想要删除空目录的文件夹的根目录(注意,不用是磁盘根目录)。

批命令和命令行相差不大,最后写个命令行的:

for /f "delims=" %a in ('dir [你想要的目录] /s/b/ad ^| sort /r') do rd  %a 2>nul

  当你运行命令时,发现它没有任何反应,别紧张,它只是在读取文件列表(执行dir),可能你的文件有点多,你也可以分两步走,先用dir,将文件目录列表写入一个txt文件,再用for读取文件。

PS:在bat文件中for命令之前,你可以加个color 0A命令,这样你的输出就会绿字黑背景的,如果你文件多的话会有一种 极客 的感觉,有兴趣的话自取。

如有错误,欢迎指正。(〃‘▽’〃)

Windows删除空文件夹问题带来的学习与思考相关推荐

  1. Windows删除空文件夹脚本

    一.功能 设置目标目录的路径 删除空文件夹 二.脚本源码 cls @echo off color 0A title 清理空文件夹 chcp 936>nul 2>nul::批处理文件所在目录 ...

  2. Unity中用递归删除空文件夹和文件夹下面的子文件,meta文件保留和IO的一些操作总结

    /*----------------------------------------------------------------Created by 王银文件名: FilesTools创建时间: ...

  3. 用python删除空文件夹~

    作者: 锋小刀 微信搜索[Python与Excel之交]关注我的公众号查看更多内容 文件夹和文件是不一样的,文件夹是含有独立路径的目录,是没有后缀名的.而在python的内置模块os中,删除文件夹和文 ...

  4. 删除空文件夹 linux,Linux中find批量删除空文件及空文件夹脚本

    Linux中find批量删除空文件及空文件夹脚本 linux下批量删除空文件(大小等于0的文件)的方法 代码如下 复制代码 find . -name "" -type f -siz ...

  5. python删除空文件夹脚本

    1 python脚本 使用递归完成对空文件夹的扫描 import os def rm(path1):# 返回当前目录下的内容.文件或文件夹# print(path)fls = os.listdir(p ...

  6. java递归删除空文件夹_Java 删除空文件夹和文件夹及其下面的文件

    一.删除代码: package deletedir; import java.io.File; public class DeleteDir { //删除空目录 public void doDelet ...

  7. python-递归删除空文件夹、遍历目录文件

    import os import tkinter as tk from tkinter.filedialog import (askopenfilename, # 请求打开一个文件名,用来选择需要打开 ...

  8. linux 只删除空文件夹,Linux如何删除空文件夹-linux删除文件夹

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习. 1. rmdir命令简介 本文主要介绍rmdir命令,该命令用于 ...

  9. 服务器空文件夹无法删除怎么办,空的文件夹无法删除怎么办 空的文件夹无法删除的原因【图文】...

    电脑已经不是人们生活中所陌生的产品,现在人们的娱乐.办公都会用到电脑,而在电脑被越发使用频繁的当下,出现的问题相对来说就越多了.很多时候这些小问题,却使得人们在使用电脑的过程中碰到大难题.就好比空的文 ...

最新文章

  1. 传承德艺之馨——上海文联第八次代表大会侧记
  2. 画世界怎么用光影_【干货】详解光影的魅力及其绘画技巧,一起打造极致炫丽的光影世界吧!...
  3. 【计算机网络】应用层 : DNS 域名解析系统 ( 域名 | 域名服务器 | 域名解析过程 | 递归查询 | 迭代查询 | 高速缓存 )
  4. mysql-5.7.17-winx64的安装配置
  5. canvas是什么牌子的包_Jack Spade DIPPED INDUSTRIAL CANVAS UTILITY BRIEF 男款帆布手提包
  6. python开发编译器_python开发编译器
  7. 几本推荐的Java书
  8. matlab在linux效率高吗,取代matlab, Linux下科学计算环境的搭建
  9. 监控摄像头服务器中断是什么原因,监控系统常见问题故障及处理方法
  10. 深度学习调参经验分享(遥感建筑提取)
  11. eclipse SWT 中实现工程图标最小化到托盘,并只能右键托盘图标选择关闭
  12. 【翻译】 Unity3D VR 教程:4.VR中的用户界面
  13. Android中屏蔽返回键,HOME键以及模拟HOME键返回效果的方法
  14. [WebSocket]使用WebSocket实现实时多人答题对战游戏
  15. postgresql.conf bgwriter_lru_multiplier
  16. tomcat重启警告:Abandoned connection cleanup thread)
  17. 机器学习系列5-梯度下降法
  18. 推荐和讯网改革开放三十年系列文章
  19. hexo搭建博客后图片无法显示的完美解决
  20. vim php tab 补全提示

热门文章

  1. CentOS7 CMatrix
  2. 2020寒假【gmoj1747】【马蹄印】【DFS】
  3. carplay逆向开发流程
  4. 58、自动喷水灭火系统的检测要求
  5. 天空表白墙php源码,开源HTML5-PHP表白墙源码分享
  6. 小米手机root解锁方法
  7. java 获取剪切板_Java中有关剪切板的操作
  8. [简单]代码片段_3
  9. ubuntu16.04 安装福昕Foxit Reader
  10. 怎样正确合理地选用DC-DC模块电源