54249
20.10.2008, aktualisiert um 18:27:05 Uhr
17836
5
0
Via Batch alle Ordner und deren Inhalt löschen, mit ausnahme der 2 jüngsten Ordner.
Hallo Liebe Administrator.de-Gemeinde,
ich hoffe ihr könnt mir mit eurem wissen bei meinem Batch-Problem weiterhelfen.
In einem Ordner "Sicherung" werden automatisch Unterordner erstellt,
welche folgendes Namensformat haben: "Sicherung_JJJJ-MM-TT" also "Sicherung_2008-10-20".
Aus Speicherplatzgründen sollen lediglich die letzten 2 Ordner vorhanden bleiben.
Sozusagen sollen die 2 jüngsten Ordner vorhanden bleiben und der Rest soll gelöscht werden.
Die Methode mit Daten welche älter als 7, 14 oder 31 Tage sind -> löschen, funktioniert nicht.
Weil Betroffenen Personen nicht Regelmäßig sichern.
Ich hoffe ihr könnt mir helfen.
ich hoffe ihr könnt mir mit eurem wissen bei meinem Batch-Problem weiterhelfen.
In einem Ordner "Sicherung" werden automatisch Unterordner erstellt,
welche folgendes Namensformat haben: "Sicherung_JJJJ-MM-TT" also "Sicherung_2008-10-20".
Aus Speicherplatzgründen sollen lediglich die letzten 2 Ordner vorhanden bleiben.
Sozusagen sollen die 2 jüngsten Ordner vorhanden bleiben und der Rest soll gelöscht werden.
Die Methode mit Daten welche älter als 7, 14 oder 31 Tage sind -> löschen, funktioniert nicht.
Weil Betroffenen Personen nicht Regelmäßig sichern.
Ich hoffe ihr könnt mir helfen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 99717
Url: https://administrator.de/contentid/99717
Ausgedruckt am: 26.11.2024 um 10:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo rg-87!
Etwa so:
Solange das "echo" in der letzten Zeile steht, werden die Löschbefehle (zum Testen) nur angezeigt - wenn Du es entfernst, werden dann auch Ordner entfernt ...
Bitte bei Änderung des Basisordners beachten, dass am Ende kein "\" einzugeben ist (auch nicht, wenn es ein Root-Ordner wie "F:\" sein sollte - dann wäre nur "F:" zu verwenden).
Grüße
bastla
Etwa so:
@echo off & setlocal
set "Basis=D:\Sicherung"
set "Ordner=Sicherung_20??-??-??"
set Anzahl=2
for /f "skip=%Anzahl% delims=" %%i in ('dir /b /ad /o-n "%Basis%\%Ordner%"') do echo rd /s /q "%Basis%\%%i"
Bitte bei Änderung des Basisordners beachten, dass am Ende kein "\" einzugeben ist (auch nicht, wenn es ein Root-Ordner wie "F:\" sein sollte - dann wäre nur "F:" zu verwenden).
Grüße
bastla
Hi bastla,
Vielleicht kannst Du auch mir weiterhelfen.
Ich möchte beim Start von XP alle Ordner unter C:\Dokumente Einstellungen löschen,
Außer "Default Users, All Users, Networkservice,LocalService".
Leider kann ich Dein Script nicht anwenden, da die Formatierung nicht alphabetisch ist.
Hast Du eine Idee?
Danke!
Vielleicht kannst Du auch mir weiterhelfen.
Ich möchte beim Start von XP alle Ordner unter C:\Dokumente Einstellungen löschen,
Außer "Default Users, All Users, Networkservice,LocalService".
Leider kann ich Dein Script nicht anwenden, da die Formatierung nicht alphabetisch ist.
Hast Du eine Idee?
Danke!
Hallo Aisenbuegel!
Ungetestet etwa so:
Bitte beachten, dass jeder Ordnername in den Ausnahmen durch "#" begrenzt wird.
Zur Sicherheit wird nicht nach Groß-/Kleinschreibung unterschieden (obwohl die angeführten Ausnahmen eindeutig sein sollten), sodass etwa auch "NetworkService" nicht gelöscht würde ("Default User" ohne "s" am Ende würde es allerdings erwischen ).
Als weitere Sicherheitsmaßnahme (für die Testphase) ist das "echo" vor dem "rd" gedacht - dadurch werden die Löschbefehle nur angezeigt.
Grüße
bastla
P.S.: Eigentlich wäre aber ein eigener Thread angebracht gewesen ...
Ungetestet etwa so:
@echo off & setlocal
set "Basis=C:\Dokumente und Einstellungen"
set "Ausnahmen=#Default Users#All Users#Networkservice#LocalService#"
for /d %%i in ("%Basis%\*.*") do echo %Ausnahmen%|findstr /i /c:"#%%~nxi#">nul || echo rd /s /q "%%i"
Zur Sicherheit wird nicht nach Groß-/Kleinschreibung unterschieden (obwohl die angeführten Ausnahmen eindeutig sein sollten), sodass etwa auch "NetworkService" nicht gelöscht würde ("Default User" ohne "s" am Ende würde es allerdings erwischen ).
Als weitere Sicherheitsmaßnahme (für die Testphase) ist das "echo" vor dem "rd" gedacht - dadurch werden die Löschbefehle nur angezeigt.
Grüße
bastla
P.S.: Eigentlich wäre aber ein eigener Thread angebracht gewesen ...
Hi bastla,
Vielen Dank für Deine promte Hilfe!
Gerade wollte ich entwarnung geben. da ich einen weiteren Thread von Dir gefunden habe:
@echo off & setlocal
set "Verz=C:\Dokumente und Einstellungen"
set "Behalten1=All Users"
set "Behalten2=Default User"
set "Behalten3=LocalService"
set "Behalten4=NetworkService"
for /f "delims=" %%i in ('dir /b /ad "%Verz%"^|findstr /v /x /c:"%Behalten1%" /c:"%Behalten2%" /c:"%Behalten3%" /c:"%Behalten4%"') do rd /s /q "%Verz%\%%i"
echo del /q "%Verz%"
Also nochmals vielen Dank! Ohne Deine Vorarbeit hätt ich das nie gepackt!
schönen Tag noch!
Vielen Dank für Deine promte Hilfe!
Gerade wollte ich entwarnung geben. da ich einen weiteren Thread von Dir gefunden habe:
@echo off & setlocal
set "Verz=C:\Dokumente und Einstellungen"
set "Behalten1=All Users"
set "Behalten2=Default User"
set "Behalten3=LocalService"
set "Behalten4=NetworkService"
for /f "delims=" %%i in ('dir /b /ad "%Verz%"^|findstr /v /x /c:"%Behalten1%" /c:"%Behalten2%" /c:"%Behalten3%" /c:"%Behalten4%"') do rd /s /q "%Verz%\%%i"
echo del /q "%Verz%"
Also nochmals vielen Dank! Ohne Deine Vorarbeit hätt ich das nie gepackt!
schönen Tag noch!