批管理删除空文件夹

用过gothub恐怕码云的同班都晓得,不带有别的公文的空文件夹上传提交时不被允许的。当然你能够在空文件下创建.keep文件(或.gitkeep文件),然后就足以上传了。

兑今世码:

唯独只要空文件夹很多,并且大家实在无需那个空文件了,那本文就学习一种命令行删除全数空文件夹的主意。并封装成.bat批管理程序。通过鼠标右键运维即可。

复制代码 代码如下:

一,DOS删除命令

@echo off
for /f “tokens=*” %%a in (‘dir /b /ad /s “指标文件夹”^|sort /r’) do rd
“%%a” 2>nul
pause
goto :eof
@echo off
for /f “delims=” %%i in (‘dir /ad /b /s’) do call :rd_dir_empty
“%%i”
goto :eof

  1.1,删除文件命令 del

若是想删除文件,输入del
盘符名:\文件名,比方,笔者想删除二个在F盘的名叫123.txt的文件,则输入
 del f:\123.txt 
按回车就能够去除该文件了。当然,该命令只好删除文件,无法去除文件夹。若要用该命令删除一个文件夹,会来得找不到文件123.txt。

rem ======= 删除空目录 =========
:rd_dir_empty
rd %1 2>nul||goto :eof
set dir_route=%1
for /f “delims=” %%i in (%dir_route%) do (
set dir_route=”%%~dpi”
for /f “delims=” %%j in (‘dir /ad /b “%%~dpi”‘)do rd “%%~dpi%%j”
2>nul||goto :eof
)
:: 把门路最终的\去掉,以便set route_deepest=”%%~dpi”能取到上一层路径
if “%dir_route:~-2,1%”==”\” set dir_route=”%dir_route:~1,-2%”
if /i not “%cd%”==%dir_route% call :rd_dir_empty %dir_route%
goto :eof

  1.2,删除文件夹命令 rm

比方想删除文件夹,输入rd
盘符名:\文本夹名称,比如,小编想删除二个在D盘的名字为wo的公文夹,则输入
 rd d:\wo
 那样就能够去除文件夹了。当然这种删除方法必得求该文件夹是空文件夹,不然删除不了。

首先步:步向Windows的MS-DOS窗口(Windows 三千/XP叫命令行提醒符),步入要查找空文件夹的驱动器,推行: 
  dir /ad/b/s | sort /r >empties.bat。 
  小提示 
  

  1.3,文件夹和文书一齐删除

若果想将文件夹和文件一齐删除,输入rd /s /q
盘符名:\文件夹名,这样会将文件夹和它里面包车型客车文书一同删除。举个例子,笔者想删除贰个在F盘的名称叫wo的文本夹和它里面的名字为123.txt的公文,输入:
 rd /s /q
f:\wo
 即可。

留意:删除文件此前备份,不要将有用文件删除!

 

复制代码 代码如下:

实例一: 批量(循环)删除内定目录下全数空文件夹

下边的代码达成效果与利益是批量删除F:\盘下的保有空文件夹:

@echo off
for /f "delims=" %%a in ('dir /ad /b /s F:\^|sort /r') do (
   rd "%%a">nul 2>nul &&echo 空目录"%%a"成功删除!
)
pause

能够复制以上代码粘贴到文本文档,然后修改文件名后缀.txt修改为.bat保存,鼠标右键点击展开即运维(或然以管理人身份运行)。小编测量检验结果如下:

空目录"F:\aaa\bbb\ccc"成功删除!
空目录"F:\aaa\bbb"成功删除!
空目录"F:\aaa"成功删除!
空目录"F:\111"成功删除!
请按任意键继续. . .

 

 

地点命令行中“|”的输入方法是按住Shift键按“\”键。  

实例二:批量删减七个磁盘的空文件夹

下面包车型客车代码能够去除c  d e f 中具备的空文件夹:

@echo off
for %%i in (c d e f) do (
   if exist %%i:\ (
      for /f "delims=" %%a in ('dir /ad /b /s "%%i:\"^|sort /r') do (
         rd "%%a"
      )
   )
)
pause

留意,以上命令会批量刨除c d e
f盘下全数的空目录,时间只怕社长一点,请耐心等待。

 

好了,有了那么些批管理程序,以往做任何项目标SVN或git地址切换的时候,提交上传再也不用纠葛三个三个清除空目录的烦懑啦。

 

  第二步:命令运转后,当前目录下会生成多少个Empties.bat文件,个中含有了逆序排列的具备文件夹的清单。用Word或记事本张开该公文,把每一行内容分别放入一对罗马尼亚语引号之内,然后在每一行后面插入“rd ”前缀(rd后加一个空格)。 

  以Word为例,按Ctrl+H展开“查找和替换”功效,查找“^p”(不含引号,下同。“^p”能够接纳以下情势输入:在“查找和替换”对话框中式茶食“高档”按键,然后点击“特殊字符→段落标志”),替换到“^prd ”(rd后边加三个空格),然后手工业余学校正第一行和结尾一行的剧情。保存修改后的Empties.bat文件,步入命令行窗口进行那一个批管理公事。Empties.bat将希图删除(即rd命令的法力)每贰个文书夹,但含有内容的公文夹不只怕用rd命令删除,结果就删除了全部空的文件夹。 

  知其所以然:咱们来打探一下日前Dir命令的运作规律:“/ad”供给Dir命令选出全体目录;“/b”表示只呈现文件夹名称(不出示Dir命令的标题新闻或摘要);“/s”表示搜索,即查找当前文件夹及其具备的子文件夹。Dir命令的输出通过管道命令(“|”)传递给Sort命令。Sort命令的机能是排序,“/r”选项表示逆序排列。 

  最终,Sort命令的出口被重定向(“>”)到Empties.bat文件。由于要求Sort命令逆序排列输出结果,所以Empties.bat文件中子文件夹总是位于父文件夹的前方,因此删除文件夹时,空的子文件夹总是先被删去,空的父文件夹也得以被删除。能够观看,神奇运用Windows内建命令,多数外界上看起来复杂的职务也能够一挥而就地做到! 

  小提醒:Dir的四个小招数 

  ★查看文件夹全体藏匿文件:如若想查看Windows文件夹和它全体子文件夹中全体的遮盖文件,只需输入:DI中华V C:\Windows.* /AH/S/B/P。 

  ★轻便创造长文件名文件列表:你能够创制三个批管理文件如Getlist.bat,当中的剧情独有DI昂Cora *.* /B >LIST.TXT,将它复制到要开创文件列表的公文夹,然后双击运转就可以将文件夹全数文件的列表保存到List.txt文件中。 

  ★多个目录齐出现:假如想同时列出C盘和D盘根目录下的剧情,那么一旦输入:DI瑞鹰 C: D:就能够。[

您恐怕感兴趣的篇章:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图