
144502
05.06.2020
Batch: Alte Backupversionen löschen
Hallo liebe Experten,
ich hoffe jemand kann mir bein meinem Problem behilflich sein.
In einem Arbeitsordner (ggfs auch in weiteren Unterordnern) habe ich viele Dateien nach folgendem Schema
KategorieA.NameA.1.bak
KategorieA.NameB.1.bak
KategorieB.NameA.1.bak
KategorieB.NameA.2.bak
KategorieB.NameA.3.bak
KategorieB.NameB.1.bak
KategorieB.NameC.1.bak
KategorieB.NameC.2.bak
KategorieC.NameA.1.bak
...
Ich bräuchte eine Batch Routine, welche bei eventuellen Duplikaten alle Duplikate, bis auf die Datei mit der höchsten Versionsnummer (die Zahl vor .txt) löscht.
Die Versionsnummern können allerdings durchaus 3-stellig werden.
Also aus obiger Liste wären folgende Dateien zu löschen:
KategorieB.NameA.1.bak
KategorieB.NameA.2.bak
KategorieB.NameC.1.bak
Das Ergebnis sollte sein, dass pro Name jeweils nur die Datei mit der höchsten Versionanummer übrig bleibt.
Ist so etwas mit Batch überhaubt machbar? Ich habe zwar schon öfter kleine Batchdateien geschrieben aber die Auswertung der Versionsnummern im Dateinamen übersteigt meine momentanen Fähigkheiten.
Vielen Dank für euren Input!
Grüße, Paul
ich hoffe jemand kann mir bein meinem Problem behilflich sein.
In einem Arbeitsordner (ggfs auch in weiteren Unterordnern) habe ich viele Dateien nach folgendem Schema
KategorieA.NameA.1.bak
KategorieA.NameB.1.bak
KategorieB.NameA.1.bak
KategorieB.NameA.2.bak
KategorieB.NameA.3.bak
KategorieB.NameB.1.bak
KategorieB.NameC.1.bak
KategorieB.NameC.2.bak
KategorieC.NameA.1.bak
...
Ich bräuchte eine Batch Routine, welche bei eventuellen Duplikaten alle Duplikate, bis auf die Datei mit der höchsten Versionsnummer (die Zahl vor .txt) löscht.
Die Versionsnummern können allerdings durchaus 3-stellig werden.
Also aus obiger Liste wären folgende Dateien zu löschen:
KategorieB.NameA.1.bak
KategorieB.NameA.2.bak
KategorieB.NameC.1.bak
Das Ergebnis sollte sein, dass pro Name jeweils nur die Datei mit der höchsten Versionanummer übrig bleibt.
Ist so etwas mit Batch überhaubt machbar? Ich habe zwar schon öfter kleine Batchdateien geschrieben aber die Auswertung der Versionsnummern im Dateinamen übersteigt meine momentanen Fähigkheiten.
Vielen Dank für euren Input!
Grüße, Paul
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 577072
Url: https://administrator.de/forum/batch-alte-backupversionen-loeschen-577072.html
Ausgedruckt am: 23.04.2025 um 00:04 Uhr
8 Kommentare
Neuester Kommentar
Hallo,
wie wäre es denn mal mit etwas Selbststudium. ZB hiermit: https://download.knowware.de/batch.pdf oder hier http://www.antonis.de/dos/batchtut/bat-kurs/index.htm
Das hilft dir sicher weiter. Du hast ja das Wochenende Zeit dafür.
Jürgen
wie wäre es denn mal mit etwas Selbststudium. ZB hiermit: https://download.knowware.de/batch.pdf oder hier http://www.antonis.de/dos/batchtut/bat-kurs/index.htm
Das hilft dir sicher weiter. Du hast ja das Wochenende Zeit dafür.
Jürgen

Powershell -EP ByPass -C "ls 'd:\ordner' -File -Filter *.bak -recurse | group {[regex]::match($_.Basename,'(.+)\.\d+$').Groups[1].Value} | %%{$_.Group | sort {[int]$_.Basename.split('.')[-1]} -Desc | select -skip 1 | del -Force}"
Moin,
und hier etwas Lesefutter bzgl. Windows Batch:
Gruss Penny.
und hier etwas Lesefutter bzgl. Windows Batch:
- Windows Batch Grundlagen
- Batch - ein paar Basics die man kennen sollte
- Workshop Batch for Runaways - Part I
- Workshop Batch for Runaways - Part II
- Workshop Batch for Runaways - Part III
- HowTo - Wie man Subroutinen in Batchfiles erstellt
- Tutorial zur FOR-Schleife
Gruss Penny.
Wenn deine Frage gelöst ist, dann Wie kann ich einen Beitrag als gelöst markieren? nicht vergessen.

Powershell ist wegen der Zickigkeit beim Ausführen nicht so ideal
Lach