neo4matrix
Goto Top

Windows Update Temp Dateien per Batch löschen

Windows XP speichert bei beim Installieren von Windows Updates automatisch die deinstallierten Dateien ab, um später diese Windows Updates wieder zu deinstallieren.
Da ich nicht vorhabe irgendwann ein Windows Update zu deinstallieren, und man auch die exaxte Reihenfolge der Updates kennen müsste, möchte ich gerne diese "Backup-Dateien"
automatisch beim Systemstart löschen lassen.

Die "Backup-Dateien" werden unter "C:\WINDOWS" (Systemvariable %SystemRoot%) in ihre jeweiligen Verzeichnisse gespreichert.
Hier ein Beispiel: "C:\WINDOWS\$NtUninstallKB961501$" (Deinstallations-Dateien des Windows Updates "KB961501").

Mit dem Befehl RD kann man Verzeichnisse löschen, aber leider ohne Platzhalter ( z.B. $* ) zu verwenden. Wenn man den
Verzeichnissnamen kennt, kann man wie folgt ein Verzeichnis löschen:
RD "%SystemRoot%\$NtUninstallKB961501$" /S /Q

Da ich aber nicht jedes Update mit Namen kenne (und zukünfige sowiso nicht), habe ich mir überlegt, mit DIR $* in eine Liste aller Verzeichnisse, die mit $ anfangen
als Textdatei zu speichern. Diese könnte man dann mit RD Zeile für Zeile abarbeiten...

Folgendes habe ich bereits in eine Batchdatei im Autostart (WUB.bat) geschrieben:


dir "%SystemRoot%\$*" /A:H /b >%TEMP%\WUB.txt


Resultat ist eine Textdatei (C:\Dokumente und Einstellungen\neo\Lokale Einstellungen\Temp\WUB.txt) mit folgendem Inhalt:


$NtUninstallKB961501$$NtUninstallKB968537$$NtUninstallKB969898$$NtUninstallKB970238$


Wie kann ich nun den Befehl RD "X" /S /Q einsetzen, dass er in der Textdatei "%TEMP%\WUB.txt" sucht, und Zeile für Zeile als "X" einsetzt, also all diese Verzeichnisse löscht?

Für Lösungsvorschläge und Anregungen bin ich euch sehr Dankbar...


mfg
neo

Content-ID: 119678

Url: https://administrator.de/contentid/119678

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

60730
60730 03.07.2009 um 12:08:49 Uhr
Goto Top
Servus Moin Hallo Neo, (/the Hägger) *lol*

  • weißt du worauf ich hinaus will? (nicht nur auf das fehlende "Zauberwort")
  • schon mal die Board interne suche angeworfen?

Gruß
empreality
empreality 03.07.2009 um 12:57:02 Uhr
Goto Top
for /d %v in (%temp%\$NtUninstallKB*) do rd /s /q %v
neo4matrix
neo4matrix 03.07.2009 um 13:21:12 Uhr
Goto Top
@timobeil: Habs gecheckt... War grad kurz vor der Mittagspause face-wink
Hab keinen ähnlichen Beitrag gefunden... Du etwa?

mfg
neo "the hacker" ok, ok..... hab wohl etwas zu oft MATRIX geschaut face-wink
neo4matrix
neo4matrix 03.07.2009 um 14:07:39 Uhr
Goto Top
@empreality: den Befehl for kannte ich noch nicht...
teste mal, was sich damit alles erreichen kann...

Besten Dank erst mal....

Deine Befehlszeile schein jedoch noch nicht zu funktionieren...

Auch nicht:
for /d %v in (%SystemRoot%\$NtUninstallKB*) do rd %v /s /q

irgend etwas stimmt daa noch nicht...
Iwan
Iwan 03.07.2009 um 14:16:26 Uhr
Goto Top
hallo,

das Problem kenn ich und wenn man ältere Rechner hat, dann hat man mehrere dutzend dieser Ordner, die (teilweise) sinnlos die Platten vollmachen
hier eine Batchlösung für Windows XP:
cd /D %WINDIR%
dir /A:H *uninstall* /B> %WINDIR%\delete.txt
for /F "delims=|" %%n in (%WINDIR%\delete.txt) do rd /s/q "%%n"  
del delete.txt /F
del kb*.log /F
damit ist der Windows-Ordner wieder sauber, aber die Einträge in der Registry sind damit noch nicht weg
diese findet man unter:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
und fangen mit KB an
neo4matrix
neo4matrix 03.07.2009 um 14:26:31 Uhr
Goto Top
Jetz hab ich's!

Die Batch-Datei muss folgendermassen aussehen:


attrib -h %SystemRoot%\$NtUninstall* /S /DFOR /D %%V IN (%SystemRoot%\$NtUninstall*) DO RD %%V /S /Qexit


denn der Befehl RD kann nur Verzeichnisse löschen, welche nicht "Versteckt" sind.
Deshalb vorher mit dem Befehl attrib die Verzeichnisse sichtbar machen...


Danke an alle! Ich hoffe, andere können diese Batch auch gebrauchen...


mfg
neo
neo4matrix
neo4matrix 03.07.2009 um 14:36:38 Uhr
Goto Top
@Iwan: Ja, genau soo wollte ich das ursprünglich auch lösen. Nun hat mir empreality eine elegantere Variante gezeigt, ohne eine Text-Datei zu
schreiben/löschen. Hab jetzt bei meiner Batch auch die Log-Dateien eingebunden. Danke.

ATTRIB -H %SystemRoot%\$NtUninstall* /S /DFOR /D %%V IN (%SystemRoot%\$NtUninstall*) DO RD %%V /S /QDEL %SystemRoot%\KB*.log /Fexit

mfg
neo
60730
60730 03.07.2009 um 15:28:35 Uhr
Goto Top
Zitat von @neo4matrix:
@timobeil: Habs gecheckt... War grad kurz vor der Mittagspase face-wink

Servus,
Mittagsphase? Mittagspause - naja gegen Mittaach hätte ich ja auch nix - muß ja nicht immer Hallo oder Moin sein......
Hab keinen ähnlichen Beitrag gefunden... Du etwa?
einen? ich hab bestimmt mindestens einen Kommentar (Lösung zu einer identischen Frage ) dazu geschrieben...
mfg
neo "the hacker" ok, ok..... hab wohl etwas zu oft MATRIX geschaut face-wink

Zitat von @neo4matrix:
@empreality: den Befehl for kannte ich noch nicht... teste mal, was sich damit alles erreichen kann...

[OT]z.B einen Text auf dem Bildschirm ausgeben, den manche Häcker seit Matrix kennen . oder was sinnvolleres?[/OT]

Zitat von @neo4matrix:
Jetz hab ich's!

Die Batch-Datei muss folgendermassen aussehen:


attrib -h %SystemRoot%\$NtUninstall* /S /DFOR /D %%V IN (%SystemRoot%\$NtUninstall*) DO RD %%V /S /Qexit

Danke an alle! Ich hoffe, andere können diese Batch auch
gebrauchen...

oh ja - ich glaub der Bastla freut sich *duck&flitz*

mfg
neo
zurück - wenigstens hast du dir selber Mühe gegeben, obwohl einfach suchen, wär ja auch kein Ding gewesen face-wink