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