從xp中的批次腳本中刪除臨時文件

從xp中的批次腳本中刪除臨時文件

我正在尋找一個好的批次腳本,它可以快速找到並清理Windows(盡可能多的變體)電腦中的所有已知安全臨時資料夾/檔案(例如Windows 臨時資料夾、所有使用者IE 臨時資料夾等)。我喜歡 CCleaner(而不是 Cleanmgr.exe)之類的 UI 工具,但是當我嘗試清理多台電腦時快速和/或以最少的參與,如果有腳本就好了。

再加上一個腳本,我可以將多個腳本連結在一起。也許會啟動各種防毒和/或惡意軟體偵測器。

有人有好的資源或可以指出好的資源嗎?

答案1

這是我寫的一個小腳本,保存在我的 USB 實用磁碟機上...非常適合 Citrix 伺服器:)

@echo off
Echo Started %time%
Echo Started %time% >> temps.txt
Echo Running for XP... >> temps.txt
Echo Running for XP...
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\Local Settings\Temp\" (
    RMDIR /S /Q "%%G\Local Settings\Temp"
    MKDIR "%%G\Local Settings\Temp"
    Echo Cleared %%G\Local Settings\Temp
    Echo Cleared %%G\Local Settings\Temp >> temps.txt
)
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\Local Settings\Temporary Internet Files\" (
    RMDIR /S /Q "%%G\Local Settings\Temporary Internet Files\"
    MKDIR "%%G\Local Settings\Temporary Internet Files\"
    Echo Cleared %%G\Local Settings\Temporary Internet Files\
    Echo Cleared %%G\Local Settings\Temporary Internet Files\ >> temps.txt
)
Echo Done.
Echo Running for Vista >> temps.txt
Echo Running for Vista...
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\AppData\Local\Temp\" (
    RMDIR /S /Q "%%G\AppData\Local\Temp\"
    MKDIR "%%G\AppData\Local\Temp\"
    Echo Cleared %%G\AppData\Local\Temp\
    Echo Cleared %%G\AppData\Local\Temp\ >> temps.txt
)
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\" (
    RMDIR /S /Q "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\"
    MKDIR "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\"
    Echo Cleared %%G\Local Settings\Temporary Internet Files\
    Echo Cleared %%G\Local Settings\Temporary Internet Files\ >> temps.txt
)
Echo Done.
Echo Ended %time%
Echo Ended %time% >> temps.txt

使用時請自行承擔風險等...這會刪除內容。

我從“文檔和設定”資料夾或 Vista 上的“使用者”運行此程式。您可以輕鬆地將 CD 命令放在頂部,以便從您想要的任何地方運行它。

cd %userprofile%
cd ..

此外,根據我的經驗,隨時清除臨時資料夾通常是安全的。使用 temp 中的檔案的程式將鎖定它們,並且此腳本將在該檔案上出錯並繼續執行。

IF EXIST 行在這裡特別好,它可以防止腳本在 NetworkService 和類似資料夾中建立資料夾,如果您不在 Vista 或 XP 上運行它,那麼該部分會運行得非常快。

在運行腳本的位置建立 temps.txt 記錄檔

編輯:來自 Freenode 上的 ##windows-server 的建議: 問:為什麼不在開始時檢測它正在運行的作業系統並運行相應的部分?答:我經常在離線媒體上使用該腳本,例如已提取的硬碟。

答案2

小心丟棄臨時文件。一些軟體安裝程式在啟動之間將檔案隱藏在那裡。我的一位前老闆在那裡儲存了重要文件(但是,他對某些事情不太聰明)。

在批次檔中,執行以下操作:

DEL /S /Q "%TEMP%\*.*"

會做你想做的事。以登入腳本執行(或通常在登入時)將清除每個使用者的臨時目錄。將其作為啟動腳本運行(作為 .DEFAULT 運行時)將清除每台電腦的臨時目錄。

我有一個 VBScript,我運行它來根據臨時檔案的年齡在啟動和登入時清除臨時檔案。這是屬於客戶的東西,所以我不能將其發佈在這裡(用他們的錢寫的),但腳本編寫者可以在幾分鐘內為您組裝起來。

我不知道有支援的 API 來清理 IE「臨時 Internet 檔案」。我想你可以刪除它們,但我不會。

答案3

最好的安全的清理臨時目錄的方法是使用 cleanmgr。缺點是您必須在每台電腦上執行 sageset,或者(而且更容易)使用註冊表項建立 ADM 檔案並使用群組原則將它們推送到客戶端桌面。要查看的登錄項目是: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches

也可以看看如何在 Windows XP 中自動執行磁碟清理工具

答案4

為什麼不在腳本中使用 Ccleaner,因為它已經具有您需要的所有功能。然後使用 Psexec 推送您的腳本,該腳本呼叫 Ccleaner,然後在完成後刪除 Ccleaner。您可以新增一個 .ini 文件,其中包含 Ccleaner 中所需的所有設定。這樣,您就不必重新發明輪子。這都是關於重用的。

相關內容