Seit längerem bin ich schon auf der Suche nach einem Programm, VBS-Script oder einem Batchfile, welches Ordner incl. allen Unterordnern gezielt löscht. Dabei soll es so arbeiten, dass eine beliebige Anzahl an Ordner bestehen bleiben soll und alle anderen, die älter sind, gelöscht werden sollen. Dies ist z.B. bei Datensicherungen sinnvoll, wenn immer nur die letzten 5 oder 10 Sicherungen bestehen bleiben sollen und alles andere bestehen bleiben soll.

Da ich nur ungern mit dem Zeitstempel oder Ordner arbeitet wollte ich dieses am Ordnernamen festmachen. Auch dieses macht Sinn, da viele Sicherungsjobs oder Programme das Sicherungsdatum und ggf. auch die Uhrzeit an den Ordnernamen anhängen. Wie hier zum Beispiel:

  • Backup_2014_12_28
  • Backup_2014_12_29
  • Backup_2014_12_30
  • Backup_2014_12_31
  • Backup_2015_01_01
  • Backup_2015_01_02
  • Backup_2015_01_03
  • Backup_2015_01_04
  • Backup_2015_01_05
  • Backup_2015_01_06
  • Backup_2015_01_07
  • Backup_2015_01_08
  • Backup_2015_01_09
  • Backup_2015_01_10

In meinem Fall wollte ich es so haben, dass nur die aktuellsten 5 Ordner incl. aller Unterordner bestehen bleiben. Also sollten die Ordner „Backup_2014_12_28“ – „Backup_2015_01_05“ gelöscht werden.

Alle Versuche, die ich unternommen habe, sind fehlgeschlagen. Es funktioniert nicht per Robocopy, per VBS-Script hat es zwar funktioniert, die Laufzeit war aber indiskutabel. Auch alle anderen Tools, die es so im Internet frei gibt, funktionierten nicht einwandfrei. Danach habe ich im Internet recherchiert und mir letztendlich folgende Lösung selber zusammengebaut:

Echo Loesche alle Ordner bis auf die letzten .....
FOR /F "eol=; skip=5 tokens=* delims=," %%i in ('dir d:\Sicherung\Backup_*.* /O:-N /b') do (
   RMDIR /S /Q d:\Sicherung\%%i
   )

Dieses Batchfile erfüllt genau diesen Zweck und löscht alle Ordner bis auf die 5 neuesten. Die Laufzeit ist gut, schneller wird es vermutlich nicht gehen. Jetzt kann ich dieses Batchfile noch in den Aufgabeplaner mit aufnehmen und somit werden jede Nacht diese Sicherungen bzw. Ordner gelöscht, die älter sind als die letzten 5.

ACHTUNG: Ich übernehme keine Gewähr für evtl. Fehler oder Datenverluste. Bitte vor Inbetriebnahme unbedingt gut testen und immer für eine zusätzliche Datensicherung sorgen.