Batch Dateinamen vergleichen und löschen
Hallo zusammen,
ich brauche Hilfe bei folgendenem Problem:
Ich hab ein Ordner der täglich mit Dateien Befüllt wird, diese Dateien haben folgenden Aufbau:
Nun brauch ich ein Batch oder Skript das folgendes macht
Sind die letzten beiden Zahlfolgen einer Datei mit einer anderen Datei dann soll die ältere gelöscht werden.

Ich habe mich selber an einem Batch versucht doch leider gescheitert
Danke schonmal
ich brauche Hilfe bei folgendenem Problem:
Ich hab ein Ordner der täglich mit Dateien Befüllt wird, diese Dateien haben folgenden Aufbau:
Nun brauch ich ein Batch oder Skript das folgendes macht
Sind die letzten beiden Zahlfolgen einer Datei mit einer anderen Datei dann soll die ältere gelöscht werden.

Ich habe mich selber an einem Batch versucht doch leider gescheitert
Danke schonmal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 209020
Url: https://administrator.de/forum/batch-dateinamen-vergleichen-und-loeschen-209020.html
Ausgedruckt am: 14.05.2025 um 22:05 Uhr
6 Kommentare
Neuester Kommentar
Hallo Floggy!
Um nur die neueste Datei der jeweiligen Kategorie zu behalten, könnte das etwa so gehen:
Achtung - der Batch ist "scharf geschaltet" und wird daher tatsächlich Dateien löschen! Zum Testen daher bitte eine Kopie des Ordners verwenden ...
Grüße
bastla
[Edit] Noch etwas angepasst bzw vereinfacht [/Edit]
Um nur die neueste Datei der jeweiligen Kategorie zu behalten, könnte das etwa so gehen:
@echo off & setlocal
set "Ordner=D:\DeinOrdner"
pushd "%Ordner%"
for /f "delims=" %%i in ('dir /b/a-d/o-n *_*_*_*') do (
if exist "%%i" for /f "tokens=1,2* delims=_" %%a in ("%%i") do for /f "skip=1 delims=" %%j in ('dir /b/a-d/o-n "%%a_*_%%c"') do del "%%j"
)
popd
Grüße
bastla
[Edit] Noch etwas angepasst bzw vereinfacht [/Edit]
Kleine Änderung im Script von Bastla und du hast auch für den Fall eine Lösung
Grüße Uwe
@echo off & setlocal
set "Ordner=D:\DeinOrdner"
pushd "%Ordner%"
for /f "delims=" %%i in ('dir /b/a-d/o-n *_*_*_*') do (
if exist "%%i" for /f "tokens=1* delims=_" %%a in ("%%i") do for /f "skip=1 delims=" %%j in ('dir /b/a-d/o-n "*_%%b"') do del "%%j"
)
popd
Grüße Uwe