“一键清理系统垃圾文件.bat”中的误区

    前几年在网上出现了一个“一键清理系统垃圾文件.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 清除系统LJ完成!
echo. & pause

一键清理系统垃圾文件

    嗯,非常简单的几行代码,作用却不小。我们把它分解看看。

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 Settings\Temporary Internet Files\*.*"

    删除IE临时文件,其实我们只要把IE临时文件夹的大小设置一个适当的值,通常就可以不用去管它了(推荐100M-200M之间)。灰狼遇到过需要清空它的情况有两种:1、打开网页缓慢、网页元素无法更新,这是由于IE临时文件夹磁盘空间设置过大造成的,把其值设置小一些就行了;2、通过IE浏览器看在线视频时无法缓冲,只要把这个文件夹清空一般就能解决问题。

del /f /s /q "%userprofile%\Local Settings\Temp\*.*"

    这是最后一个误区。此行代码的作用是删除当前帐户临时文件夹中的临时文件,不过它只删除了文件,却留下了许多空文件夹(del命令只能够删除文件,不能够删除文件夹)。久而久之,临时文件夹中就留下了大量无用的空文件夹,没有完全达到清理垃圾的目的。

    以上特别列出了的六点,就是“一键清理系统垃圾文件.bat”中的六个误区,通过对此批处理的分解后,灰狼猜测,作者编写此批处理时是基于FAT32文件系统格式。虽然代码上存在一些瑕疵,但不可否认,在很多人都才刚刚开始接触电脑的时候(包括灰狼),就已经有人编写出了这么优秀的批处理,作者确实是一个让人佩服的电脑高手。

    不过“一键清理系统垃圾文件.bat”毕竟是FAT32时期的产物,已经有点不适应现在的Windows系统环境了,希望大家在使用此批处理时,能够知道它的具体作用,优点与缺点,懂得根据自己的需求取舍其中的代码。

查看 windows NTFS FAT32的相关文章

转载本站原创文章请注明:文章转自 灰狼IT路,链接: https://itlu.org/articles/1769.html

已有 3 条评论

  1. XP之后就没用了

    1. 它已经渐渐的被人忘记了

  2. 现在仍然流行着……

添加新评论