使用批处理(bat cmd)删除电脑中所有的空文件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用批处理(bat cmd)删除电脑中所有的空文件

随着电脑使用得越来越久,电脑中文件,文件夹越来越多.特别是是空文件夹,藏得非常深,既不美观,也影响使用.因此,萌生了使用批处理来删除的想法.但是,网络的的方法都是有缺陷的,效果不完美.

例如下面这段程序:

@echo off

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

for /f %%i in (kill.txt) do rd %%i

echo y |del kill.txt

这段程序会产生一些问题,那就是假如一个文件夹名中包含了空格,那么这段程序就不能正确地删除它.而且,达不到要删除电脑中所有的空文件的目的,此处只能查找D盘.假如电脑中有4个盘符,分别是CDEF,2个移动盘符GH.那么那么只能做如下修改:

@echo off

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

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

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

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

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

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

for /f %%i in (kill.txt) do rd %%i

echo y |del kill.txt

那么,代码的重用率和容错率不高,容易出错,假如电脑中的盘符不是这些呢?就达不到效果. 替代的方法是用一条语句查找出电脑中的盘符,那么以上语句可以改成:

@echo off

for /f "skip=1 delims=" %%a in ('Wmic Logicaldisk Where "DriveType=2 or DriveType=3" get name') do dir %%a /ad /b /s|sort /r>>kill.txt

for /f %%i in (kill.txt) do rd %%i

echo y |del kill.txt

这段代码还是不能解决关于文件夹命名中有空格的问题,通过我多方查找资料,在路径两端夹银行可解决.例如rd d:\132 45运行不能成功,rd “d:\132 45”才行.

因此,可以将上述代码改为:

@echo off

for /f "skip=1 delims=" %%a in ('Wmic Logicaldisk Where "DriveType=2 or DriveType=3" Get Name') do dir %%a /ad /b /s|sort /r>>temp.txt

for /f "delims=" %%i in (temp.txt) do echo "%%i">>kill.txt

for /f "delims=" %%i in (kill.txt) do rd %%i

echo y|del temp.txt

echo y|del kill.txt

完整的程序代码:

@echo off

echo 删除计算机中所有空文件夹......

echo 正在查找当前计算机所有盘符.......

echo 查找完成......

echo 正在查找所有文件夹......

echo 查找完成......

echo 正在将目录信息写入临时文件......

dir C:\ /ad /b /s |sort /r>>temp.txt

echo 写入完成......

for /f "skip=1 delims=" %%a in ('Wmic Logicaldisk Where "DriveType=2 or DriveType=3" Get Name') do dir %%a /ad /b /s|sort /r>>temp.txt

echo 正在准备转换临时文件......

for /f "delims=" %%i in (temp.txt) do echo "%%i">>kill.txt

echo 转换完成......

echo 删除空文件开始......

echo 请稍侯......

for /f "delims=" %%i in (kill.txt) do rd %%i

cls

echo 删除空文件完成......

echo 正在准备删除临时文件......

echo y|del temp.txt

echo 删除临时文件完成......

echo 正在准备删除转换文件......

echo y|del kill.txt

echo 删除转换文件完成......

echo 所有工作完成......

pause

可能有些朋友不知道怎么建立批处理文件.其实很简单,先建立一个文本文档,将代码复制进去,另存为任意文件名.bat即可.然后双击运行.

相关文档
最新文档