前幾年在網(wǎng)上出現(xiàn)了一個(gè)“一鍵清理系統(tǒng)垃圾文件.bat”,這個(gè)簡(jiǎn)單又方便的批處理很快就傳開了。而且到現(xiàn)在還是很紅。很多人都在用這個(gè)批處理清理Windows系統(tǒng)垃圾文件。大多數(shù)人覺得方便好用,也不管它的原理是什么,而一些喜歡搞清楚“為什么”的朋友也多少了解其中的原理。大家都認(rèn)為這個(gè)批處理很安全,不會(huì)破壞系統(tǒng)中的正常文件,可以放心地使用。不過真的是這樣嗎?
@echo off
echo 正在清理系統(tǒng)垃圾文件,請(qǐng)稍等......
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 清理系統(tǒng)垃圾完成!
嗯,非常簡(jiǎn)單的幾行代碼,作用卻不小。我們把它分解看看。
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
這幾行代碼是刪除系統(tǒng)盤根目錄冗余文件的,沒什么問題,繼續(xù)分解?! ?br />del /f /s /q %systemdrive%recycled*.*
如果我沒有理解錯(cuò),這一行代碼的作用是刪除回收站中的文件。不過,recycled是FAT32格式下的回收站文件夾,如果你的硬盤不曾使用過FAT32格式,一般不會(huì)出現(xiàn)這個(gè)文件夾?,F(xiàn)在的Windows系統(tǒng)盤普遍已經(jīng)采用NTFS格式,及有可能不存在recycled文件夾,所以這一行代碼在大多數(shù)情況下,是無效的。而在它有效的情況下,不經(jīng)用戶確認(rèn)就直接刪除回收站中的文件,容易造成難以挽回的損失。此為誤區(qū)一。 del /f /s /q %windir%*.bak
這句的作用是刪除Windows目錄下的備份文件,也沒有什么問題?! ?br />del /f /s /q %windir%prefetch*.*
prefetch中存放的是預(yù)讀文件,可以加快程序啟動(dòng)速度。如果你的操作系統(tǒng)還是安裝在機(jī)械硬盤中,把它刪除了,雖然能夠加快丁點(diǎn)電腦開機(jī)時(shí)間,但運(yùn)行常用程序時(shí)會(huì)付出更多的時(shí)間。此為誤區(qū)二?! d /s /q %windir%temp md %windir%temp 這一行代碼的作用是清理系統(tǒng)臨時(shí)文件夾中的臨時(shí)文件。先把臨時(shí)文件夾刪除,然后再創(chuàng)建。如果系統(tǒng)盤是FAT32文件格式下,這一行代碼沒什么副作用。但如果系統(tǒng)盤的文件格式是NTFS,它會(huì)破壞系統(tǒng)文件夾原有的權(quán)限設(shè)置,造成一些軟件的運(yùn)行異常。這種異常較難排查(很多人都想不到是因?yàn)榍謇砝募斐傻模?,特別是在服務(wù)器中表現(xiàn)尤為常見。此為誤區(qū)三。
del /f /q %userprofile%cookies*.*
cookies的作用大家都很了解了,讓我們?cè)谡搲?、博客、微博等需要輸入用戶名、密碼的地方不需要頻繁輸入的好東西,它的作用不只如此,不少朋友使用“一鍵清理系統(tǒng)垃圾文件.bat”時(shí)都把這句去掉了。姑且把它算為誤區(qū)四吧。
del /f /q %userprofile%recent*.*
del /f /s /q "%userprofile%recent*.*"
把這兩行代碼放在一起看。這兩行讓我糾結(jié)了很久,我一直以為是自己找到的“一鍵清理系統(tǒng)垃圾文件.bat”有問題,可是在搜索引擎來回翻騰了幾圈下來發(fā)現(xiàn),確實(shí)沒有錯(cuò)……這兩行代碼的作用是一樣的,不過有后一行就夠了,前一行是 多余+無效 。%userprofile%路徑必須加引號(hào)才能在批處理中正確識(shí)別。此行的作用是刪除最近打開的文檔列表,而把它清空后,就不能快速地從最近打開的文檔列表找到剛剛打開過的文檔,這樣是否方便了電腦的使用,就見仁見智了。此乃誤區(qū)五?! ?br />del /f /s /q "%userprofile%Local SettingsTemporary Internet Files*.*"
刪除IE臨時(shí)文件,其實(shí)我們只要把IE臨時(shí)文件夾的大小設(shè)置一個(gè)適當(dāng)?shù)闹?,通常就可以不用去管它了(推薦100M-200M之間)。
Xiaowo遇到過需要清空它的情況有兩種:
1、打開網(wǎng)頁緩慢、網(wǎng)頁元素?zé)o法更新,這是由于IE臨時(shí)文件夾磁盤空間設(shè)置過大造成的,把其值設(shè)置小一些就行了;
2、通過IE瀏覽器看在線視頻時(shí)無法緩沖,只要把這個(gè)文件夾清空一般就能解決問題?! ?br />del /f /s /q "%userprofile%Local SettingsTemp*.*"
這是最后一個(gè)誤區(qū)。此行代碼的作用是刪除當(dāng)前帳戶臨時(shí)文件夾中的臨時(shí)文件,不過它只刪除了文件,卻留下了許多空文件夾(del命令只能夠刪除文件,不能夠刪除文件夾)。久而久之,臨時(shí)文件夾中就留下了大量無用的空文件夾,沒有完全達(dá)到清理垃圾的目的。
以上特別列出了的六點(diǎn),就是“一鍵清理系統(tǒng)垃圾文件.bat”中的六個(gè)誤區(qū),通過對(duì)此批處理的分解后,Xiaowo猜測(cè),作者編寫此批處理時(shí)是基于 FAT32文件系統(tǒng)格式。雖然代碼上存在一些瑕疵,但不可否認(rèn),在很多人都才剛剛開始接觸電腦的時(shí)候(包括Xiaowo),就已經(jīng)有人編寫出了這么優(yōu)秀的批處理,作者確實(shí)是一個(gè)讓人佩服的電腦高手。相信在我寫這篇博客的時(shí)候,自認(rèn)為已經(jīng)高出當(dāng)時(shí)的自己幾個(gè)段位了,而現(xiàn)在的批處理作者必定也還是高于現(xiàn)在的 Xiaowo幾個(gè)段位的?! ?br />不過“一鍵清理系統(tǒng)垃圾文件.bat”畢竟是FAT32時(shí)期的產(chǎn)物,已經(jīng)有點(diǎn)不適應(yīng)現(xiàn)在的Windows系統(tǒng)環(huán)境了,希望大家在使用此批處理時(shí),能夠知道它的具體作用,優(yōu)點(diǎn)與缺點(diǎn),懂得根據(jù)自己的需求取舍其中的代碼。這也就達(dá)到Xiaowo寫這篇博客的目的了。