使用批处理(bat cmd)删除电脑中所有的空文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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即可.然后双击运行.