52 lines
1.7 KiB
Plaintext
52 lines
1.7 KiB
Plaintext
@echo off
|
|
setlocal enabledelayedexpansion
|
|
|
|
:: -------------------------------------------------------------------
|
|
:: Konfiguration
|
|
:: -------------------------------------------------------------------
|
|
set "CACHE=C:\Windows\sccmcache" :: Basisordner, in dem aufgeräumt werden soll
|
|
set "KEEPFILE=SETUP123.cmd" :: Datei, deren Ordner nicht gelöscht werden darf
|
|
|
|
:: -------------------------------------------------------------------
|
|
:: Schritt 1: Pfad zu dem Ordner ermitteln, in dem die KEEPFILE liegt
|
|
:: -------------------------------------------------------------------
|
|
set "KEEPPATH="
|
|
|
|
for /r "%CACHE%" %%F in (%KEEPFILE%) do (
|
|
if exist "%%F" (
|
|
set "KEEPPATH=%%~dpF" :: %%~dpF = Laufwerk + Pfad ohne Dateiname
|
|
)
|
|
)
|
|
|
|
:: Wenn Datei nicht gefunden wird ? Abbruch
|
|
if not defined KEEPPATH (
|
|
echo Datei %KEEPFILE% wurde nicht gefunden!
|
|
exit /b 1
|
|
)
|
|
|
|
echo --------------------------------------------------
|
|
echo Behalte Ordner: %KEEPPATH%
|
|
echo --------------------------------------------------
|
|
echo.
|
|
|
|
:: -------------------------------------------------------------------
|
|
:: Schritt 2: Alle Unterordner in sccmcache durchgehen
|
|
:: -------------------------------------------------------------------
|
|
for /d %%D in ("%CACHE%\*") do (
|
|
:: Vergleich: aktueller Ordner vs. KEEPPATH
|
|
if /i not "%%~fD\"=="%KEEPPATH%" (
|
|
:: wenn nicht der Behalte-Ordner ? löschen
|
|
echo Loesche: %%~fD
|
|
rmdir /s /q "%%~fD"
|
|
) else (
|
|
echo Behalte: %%~fD
|
|
)
|
|
)
|
|
|
|
:: -------------------------------------------------------------------
|
|
:: Schritt 3: Abschlussmeldung
|
|
:: -------------------------------------------------------------------
|
|
echo.
|
|
echo Aufraeumen abgeschlossen.
|
|
endlocal
|