Löschen Sie temporäre Dateien aus dem Batch-Skript in XP

7

Ich suche nach einem guten Batch-Skript, mit dem alle bekannten sicheren temporären Ordner / Dateien von Windows-Computern (so viele Varianten wie möglich) (z. B. der Windows-temporäre Ordner, die IE-temporären Ordner aller Benutzer usw.) schnell gefunden und bereinigt werden können. Ich mag UI-Tools wie CCleaner (über Cleanmgr.exe), aber wenn ich versuche, mehrere Computer schnell und / oder mit minimalem Aufwand zu bereinigen , wäre es schön, ein Skript zu haben.

Außerdem könnte ich mit einem Skript mehrere Skripte miteinander verketten. Vielleicht eine, um dann verschiedene Antiviren- und / oder Malware-Detektoren zu starten.

Hat jemand eine gute oder kann auf eine gute Ressource verweisen?

Keith Bentrup
quelle
Mehr zur Automatisierung von CleanMgr hier ... stackoverflow.com/a/35214197/80161
Nathan Hartley

Antworten:

7

Hier ist ein kleines Skript, das ich geschrieben habe und das ich auf meinem USB-Dienstprogramm habe ... GROSS für Citrix Server :)

@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

Die Verwendung erfolgt auf eigenes Risiko usw. DIESES LÖSCHT STUFF.

Ich führe dies aus dem Ordner "Dokumente und Einstellungen" oder "Benutzer unter Vista" aus. Sie können einen CD-Befehl ganz einfach nach oben werfen, um ihn von einem beliebigen Ort aus auszuführen.

cd %userprofile%
cd ..

Außerdem ist es meiner Erfahrung nach im Allgemeinen sicher, den temporären Ordner jederzeit zu löschen. Programme, die temporäre Dateien verwenden, sperren diese, und dieses Skript führt zu Fehlern in dieser Datei und fährt fort.

Die IF EXIST-Zeile ist hier besonders schön. Sie verhindert, dass das Skript Ordner in NetworkService und ähnlichen Ordnern erstellt. Wenn Sie sie nicht unter Vista oder XP ausführen, vergeht dieser Abschnitt sehr schnell.

Erstellt die Protokolldatei temps.txt, von wo aus Sie das Skript ausführen

Bearbeiten: Hinweis von ## Windows-Server auf Freenode: F: Warum erkennen Sie nicht, auf welchem ​​Betriebssystem es am Anfang ausgeführt wird, und führen den entsprechenden Abschnitt aus? A: Ich verwende das Skript häufig auf Offline-Medien, z. B. einer extrahierten Festplatte.

Garrett
quelle
Wenn es ein Sperrproblem gibt, bin ich mir ziemlich sicher, dass der Befehl beendet wird, ohne die anderen nicht gesperrten Dateien zu löschen.
Hapkido
Nicht bei Verwendung von rd / q / s Hier ist ein Protokoll: Temp \ ~ DF27D9.tmp - Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. Temp \ ~ DFDBF4.tmp - Zugriff verweigert.
Garrett
3

Seien Sie vorsichtig beim Löschen temporärer Dateien. Einige Software-Installer verstecken dort Dateien zwischen den Starts. Ein alter Chef von mir hat dort wichtige Dateien gespeichert (aber in einigen Dingen war er nicht besonders klug).

Führen Sie in einer Batchdatei Folgendes aus:

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

Wird machen was du willst. Wenn Sie dies als Anmeldeskript ausführen (oder im Allgemeinen während der Anmeldung), wird das temporäre Verzeichnis pro Benutzer gelöscht. Wenn Sie es als Startskript ausführen (während es als .DEFAULT ausgeführt wird), wird das temporäre Verzeichnis pro Computer gelöscht.

Ich habe ein VBScript, das ich ausführe, um temporäre Dateien beim Booten und bei der Anmeldung basierend auf ihrem Alter zu bereinigen. Es ist etwas, das einem Kunden gehört, also kann ich es hier nicht posten (schrieb es auf ihren Cent), aber es ist etwas, das ein Scripter in wenigen Minuten für Sie zusammenstellen könnte.

Mir ist keine unterstützte API zum Bereinigen der IE "Temporären Internetdateien" bekannt. Sie könnten sie wohl einfach löschen, aber ich würde es nicht tun.

Evan Anderson
quelle
Ich werde auch den Parameter / F hinzufügen, falls es eine schreibgeschützte Datei gibt.
Hapkido
3

Der beste sichere Weg, um die temporären Verzeichnisse zu bereinigen, ist mit cleanmgr. Der Nachteil ist, dass Sie entweder sageset auf jedem Computer ausführen müssen oder (und viel einfacher) eine ADM-Datei mit den Registrierungseinträgen erstellen und diese mithilfe von Gruppenrichtlinien auf Client-Desktops übertragen müssen. Der zu überprüfende Registrierungsschlüssel lautet: HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ VolumeCaches

Siehe auch So automatisieren Sie das Datenträgerbereinigungstool in Windows XP

Jim B.
quelle
(+1 wenn ich den Repräsentanten hätte) Danke, die Adm-Datei ist ein guter Tipp für Maschinen, die ich auch rausschieben kann, sonst habe ich aus dem ersten Grund, den Sie erwähnt haben, nicht wirklich über cleanmgr nachgedacht.
Keith Bentrup
1

Sie alle machen es viel zu schwer. Dies ist Windows XP, nach dem er fragt. Hier sind einige nützliche:

DEL /Q /S "%USERPROFILE%\Local Settings\Temp\*.*"
DEL /F /Q /S "%USERPROFILE%\Local Settings\Temporary Internet Files\*.*" >NUL
DEL /F /Q /S "%WinDir%\Temp\*.*"
Julius Thyssen
quelle
0

Warum nicht einfach Ccleaner in Ihrem Skript verwenden, da es bereits alle Funktionen enthält, die Sie benötigen. Verwenden Sie dann Psexec, um Ihr Skript zu pushen, das Ccleaner aufruft, und löschen Sie Ccleaner, wenn Sie fertig sind. Sie können eine INI-Datei hinzufügen, die alle gewünschten Einstellungen in Ccleaner enthält. Auf diese Weise müssen Sie das Rad nicht neu erfinden. Alles dreht sich um Wiederverwendung.


quelle
0

Ich möchte lieber die Dateien als den Ordner unter XP löschen. weil wir eine Anwendung haben, die VIELE temporäre Dateien speichert und dort belässt. Ich möchte die Dateien in allen Benutzerprofilen löschen.

FOR /F "tokens=1" %%G IN ('DIR /B /AD "c:\documents and settings"') DO IF EXIST "c:\documents and settings\%%G\Local Settings\Temp\" (del "c:\documents and settings\%%G\local settings\temp\*.*"/Q)
Michiel van den Boogaard
quelle