隨著系統使用時間增長,暫存檔、日誌檔、快取資料會大量堆積,佔據寶貴磁碟空間並拖慢系統效能。雖然市面上有許多清理軟體(如 CCleaner),但 Windows 內建的批次檔功能即可達成同樣效果,且無廣告、無常駐記憶體、完全可自訂。本文提供一份經過優化的批次指令碼,可一鍵清理常見垃圾檔案類型。
在桌面空白處按滑鼠右鍵 > 「新增」 > 「文字文件」,命名為 CleanTemp.txt。
@echo off
color 1e
echo 正在清理系統暫存檔與快取,請稍候...
echo.
:: 清理常見副檔名的暫存檔 (遞迴全盤,謹慎使用)
for /r c:\ %%a in (*.tmp *.chk *.gid *._mp *.old *.bak *.log) do del /f /s /q "%%a" 2>nul
:: 清理系統暫存目錄
for /r c:\windows\temp %%a in (*.*) do del /f /s /q "%%a" 2>nul
for /r c:\windows\Prefetch %%a in (*.*) do del /f /s /q "%%a" 2>nul
:: 清理使用者暫存目錄
for /r "%userprofile%\AppData\Local\Temp" %%a in (*.*) do del /f /s /q "%%a" 2>nul
for /r "%localappdata%\Microsoft\Windows\Temporary Internet Files" %%a in (*.*) do del /f /s /q "%%a" 2>nul
for /r "%localappdata%\Microsoft\Windows\History" %%a in (*.*) do del /f /s /q "%%a" 2>nul
for /r "%appdata%\Microsoft\Windows\Cookies" %%a in (*.*) do del /f /s /q "%%a" 2>nul
:: 清理 Windows Update 下載快取
for /r "%windir%\SoftwareDistribution\Download" %%a in (*.*) do del /f /s /q "%%a" 2>nul
:: 清理其他常見快取
for /r "%windir%\Downloaded Program Files" %%a in (*.*) do del /f /s /q "%%a" 2>nul
for /r "%windir%\System32\LogFiles" %%a in (*.*) do del /f /s /q "%%a" 2>nul
:: 刪除休眠檔 (若不使用休眠功能可啟用,會節省數 GB 空間)
:: del /f /s /q %systemdrive%\hiberfil.sys 2>nul
echo.
echo 清理作業完成!
pause & exit
重要說明:
- 指令碼已加入
2>nul抑制「找不到檔案」等錯誤訊息,執行更乾淨。- 全盤掃描
c:\可能耗時較久,建議改為僅掃描特定暫存目錄(如上方已分類列出),或將第一行for /r c:\註解掉 (前加::)。- 休眠檔刪除指令預設註解,若您使用「快速啟動」或休眠功能,請勿啟用該行,否則會導致功能失效。
- 需以系統管理員身分執行 才能清理系統層級目錄 (C:\Windows\Temp 等)。
將檔名從 CleanTemp.txt 改為 CleanTemp.bat。系統會提示「變更副檔名可能會使檔案無法使用」,點選「是」。
右鍵點擊 CleanTemp.bat > 選擇「以系統管理員身分執行」。若出現 UAC 提示,點選「是」。
if not exist "path\important.log" 判斷。cleanmgr /sageset:1 設定清理項目,再用 cleanmgr /sagerun:1 執行,互補批次檔無法清理的系統元件(如錯誤報告、縮圖快取)。這支批次檔雖簡單,卻能有效替代大多數付費清理軟體的核心功能。定期執行,能保持系統輕盈、釋放數 GB 空間,特別適合 SSD 使用者。請記得備份重要資料後再執行,並根據自身需求調整掃描範圍。