前几年在网上出现了一个“一键清理系统垃圾文件.bat”,这个简单又方便的批处理很快就传开了。而且到现在还是很红。很多人都在用这个批处理清理Windows系统垃圾文件。大多数人觉得方便好用,也不管它的原理是什么,而一些喜欢搞清楚“为什么”的朋友也多少了解其中的原理。大家都认为这个批处理很安全,不会破坏系统中的正常文件,可以放心地使用。不过真的是这样吗?
@echo off
echo 正在清理系统垃圾文件,请稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo 清理系统垃圾完成!
嗯,非常简单的几行代码,作用却不小。我们把它分解看看。
del /f /s /q %systemdrive%*.tmp
del /f /s /q %systemdrive%*._mp
del /f /s /q %systemdrive%*.log
del /f /s /q %systemdrive%*.gid
del /f /s /q %systemdrive%*.chk
del /f /s /q %systemdrive%*.old
这几行代码是删除系统盘根目录冗余文件的,没什么问题,继续分解。
del /f /s /q %systemdrive%recycled*.*
如果我没有理解错,这一行代码的作用是删除回收站中的文件。不过,recycled是FAT32格式下的回收站文件夹,如果你的硬盘不曾使用过FAT32格式,一般不会出现这个文件夹。现在的Windows系统盘普遍已经采用NTFS格式,及有可能不存在recycled文件夹,所以这一行代码在大多数情况下,是无效的。而在它有效的情况下,不经用户确认就直接删除回收站中的文件,容易造成难以挽回的损失。此为误区一。 del /f /s /q %windir%*.bak
这句的作用是删除Windows目录下的备份文件,也没有什么问题。
del /f /s /q %windir%prefetch*.*
prefetch中存放的是预读文件,可以加快程序启动速度。如果你的操作系统还是安装在机械硬盘中,把它删除了,虽然能够加快丁点电脑开机时间,但运行常用程序时会付出更多的时间。此为误区二。 rd /s /q %windir%temp md %windir%temp 这一行代码的作用是清理系统临时文件夹中的临时文件。先把临时文件夹删除,然后再创建。如果系统盘是FAT32文件格式下,这一行代码没什么副作用。但如果系统盘的文件格式是NTFS,它会破坏系统文件夹原有的权限设置,造成一些软件的运行异常。这种异常较难排查(很多人都想不到是因为清理垃圾文件造成的),特别是在服务器中表现尤为常见。此为误区三。
del /f /q %userprofile%cookies*.*
cookies的作用大家都很了解了,让我们在论坛、博客、微博等需要输入用户名、密码的地方不需要频繁输入的好东西,它的作用不只如此,不少朋友使用“一键清理系统垃圾文件.bat”时都把这句去掉了。姑且把它算为误区四吧。
del /f /q %userprofile%recent*.*
del /f /s /q "%userprofile%recent*.*"
把这两行代码放在一起看。这两行让我纠结了很久,我一直以为是自己找到的“一键清理系统垃圾文件.bat”有问题,可是在搜索引擎来回翻腾了几圈下来发现,确实没有错……这两行代码的作用是一样的,不过有后一行就够了,前一行是 多余+无效 。%userprofile%路径必须加引号才能在批处理中正确识别。此行的作用是删除最近打开的文档列表,而把它清空后,就不能快速地从最近打开的文档列表找到刚刚打开过的文档,这样是否方便了电脑的使用,就见仁见智了。此乃误区五。
del /f /s /q "%userprofile%Local SettingsTemporary Internet Files*.*"
删除IE临时文件,其实我们只要把IE临时文件夹的大小设置一个适当的值,通常就可以不用去管它了(推荐100M-200M之间)。
Xiaowo遇到过需要清空它的情况有两种:
1、打开网页缓慢、网页元素无法更新,这是由于IE临时文件夹磁盘空间设置过大造成的,把其值设置小一些就行了;
2、通过IE浏览器看在线视频时无法缓冲,只要把这个文件夹清空一般就能解决问题。
del /f /s /q "%userprofile%Local SettingsTemp*.*"
这是最后一个误区。此行代码的作用是删除当前帐户临时文件夹中的临时文件,不过它只删除了文件,却留下了许多空文件夹(del命令只能够删除文件,不能够删除文件夹)。久而久之,临时文件夹中就留下了大量无用的空文件夹,没有完全达到清理垃圾的目的。
以上特别列出了的六点,就是“一键清理系统垃圾文件.bat”中的六个误区,通过对此批处理的分解后,Xiaowo猜测,作者编写此批处理时是基于 FAT32文件系统格式。虽然代码上存在一些瑕疵,但不可否认,在很多人都才刚刚开始接触电脑的时候(包括Xiaowo),就已经有人编写出了这么优秀的批处理,作者确实是一个让人佩服的电脑高手。相信在我写这篇博客的时候,自认为已经高出当时的自己几个段位了,而现在的批处理作者必定也还是高于现在的 Xiaowo几个段位的。
不过“一键清理系统垃圾文件.bat”毕竟是FAT32时期的产物,已经有点不适应现在的Windows系统环境了,希望大家在使用此批处理时,能够知道它的具体作用,优点与缺点,懂得根据自己的需求取舍其中的代码。这也就达到Xiaowo写这篇博客的目的了。