Batch löschen nach Tagen x aber mit Ausnahme
Hallo Leute,
Im ersten Bild seht ihr wie mein Ordner auszusehen hat und im 2. seht ihr die verschiedenen Versionen der exe "WolfPress".
In unregelmäßigen Abständen kommt eine neue Version der .exe , die alte wird dann mit der Versionsnummer umbenannt (wie im 2.Bild).
Die neuste Version wird in "WolfPess" umbenannt damit sie dann als aktive exe gilt.
Es kann aber vorkommen, dass die neue fehlerhaft und daher erst eine Testphase (meist eine Woche) braucht.
Sollte nun die Woche rum sein kann die alte Version gelöscht werden.
Folgenden Syntax habe ich schon gefunden
Forfiles /P E:\Ordner\ /S /M *WolfPress* /D -8 /C "cmd /c del /q @path"
/P E:\Ordner : Pfad auf dem die Suche gestartet werden soll
/S : Bitte mit allen Unterordnern
/M *.* : Suchmaske - hier alle Dateien (ausser denen ohne Dateiendung)
/D -8 : Letztes Änderungsdatum älter als 8 Tage zum heutigen Datum
/C "cmd /c del /q @path" : Befehl der mit diesen Dateien ausgeführt werden soll (hier löschen)
aber dies führt dazu, dass zwar die alten Versionen verschwinden ABER wenn die neuste .exe geschlossen ist wird diese auch gelöscht.
In der Suchmaske lasse ich nach "WolfPress" suchen, daher verschwindet diese ja auch, aber genau diese exe (ohne Versionsnummer im Namen) soll vorhanden bleiben.
Leider habe ich keine Variante ergoogle´n können, die eine Ausnahme macht.
D.h. nur WolfPress.exe soll vom löschen nicht betroffen sein egal wie alt sie ist
könnt ihr mir helfen ?

Im ersten Bild seht ihr wie mein Ordner auszusehen hat und im 2. seht ihr die verschiedenen Versionen der exe "WolfPress".
In unregelmäßigen Abständen kommt eine neue Version der .exe , die alte wird dann mit der Versionsnummer umbenannt (wie im 2.Bild).
Die neuste Version wird in "WolfPess" umbenannt damit sie dann als aktive exe gilt.
Es kann aber vorkommen, dass die neue fehlerhaft und daher erst eine Testphase (meist eine Woche) braucht.
Sollte nun die Woche rum sein kann die alte Version gelöscht werden.
Folgenden Syntax habe ich schon gefunden
Forfiles /P E:\Ordner\ /S /M *WolfPress* /D -8 /C "cmd /c del /q @path"
/P E:\Ordner : Pfad auf dem die Suche gestartet werden soll
/S : Bitte mit allen Unterordnern
/M *.* : Suchmaske - hier alle Dateien (ausser denen ohne Dateiendung)
/D -8 : Letztes Änderungsdatum älter als 8 Tage zum heutigen Datum
/C "cmd /c del /q @path" : Befehl der mit diesen Dateien ausgeführt werden soll (hier löschen)
aber dies führt dazu, dass zwar die alten Versionen verschwinden ABER wenn die neuste .exe geschlossen ist wird diese auch gelöscht.
In der Suchmaske lasse ich nach "WolfPress" suchen, daher verschwindet diese ja auch, aber genau diese exe (ohne Versionsnummer im Namen) soll vorhanden bleiben.
Leider habe ich keine Variante ergoogle´n können, die eine Ausnahme macht.
D.h. nur WolfPress.exe soll vom löschen nicht betroffen sein egal wie alt sie ist
könnt ihr mir helfen ?


Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 502205
Url: https://administrator.de/forum/batch-loeschen-nach-tagen-x-aber-mit-ausnahme-502205.html
Ausgedruckt am: 19.02.2025 um 22:02 Uhr
7 Kommentare
Neuester Kommentar
Hi,
allein mit einem Zeitfilter wird das schwierig, es sei denn Du kannst garantieren, dass innerhalb der angegebenen Zeitspanne immer wieder eine neuere Version dazu kommt.
Ich würde wahrscheinlich ein PS-Script schreiben, welches zuerst die vorhandenen Dateien mit deren Zeitstempel auflistet und dann alle bis auf die aktuellste löscht.
E.
Edit:
Oder, einfach den Filter um "4_" erweitern?
/M *WolfPress4_*
allein mit einem Zeitfilter wird das schwierig, es sei denn Du kannst garantieren, dass innerhalb der angegebenen Zeitspanne immer wieder eine neuere Version dazu kommt.
Ich würde wahrscheinlich ein PS-Script schreiben, welches zuerst die vorhandenen Dateien mit deren Zeitstempel auflistet und dann alle bis auf die aktuellste löscht.
E.
Edit:
Oder, einfach den Filter um "4_" erweitern?
/M *WolfPress4_*
Zitat von @Bellamiiii:
wäre ne Möglichkeit.... müsste dann nur alle Stationen nochmal anfassen wenn wir mal bei 5 sind
Und wie oft kommt das vor?wäre ne Möglichkeit.... müsste dann nur alle Stationen nochmal anfassen wenn wir mal bei 5 sind
Ansonsten könntest Du "blind" vorsorgen, am einfachsten so (oder mit einer Schleife)
Mehrere Befehle mit nacheinander
/M *WolfPress4_*
/M *WolfPress5_*
/M *WolfPress6_*
/M *WolfPress7_*
/M *WolfPress8_*
Zitat von @Bellamiiii:
mhmh PS Script ? wie würde das aussehen ?=D hab mich bei programmieren eher nur durchgemogelt xD
Ungefähr somhmh PS Script ? wie würde das aussehen ?=D hab mich bei programmieren eher nur durchgemogelt xD
$Files = dir WolfPress*.* | select Fullname,LastWriteTime | sort LastWriteTime -desc
$CurrentVersion = $Files
$Files | ?{-not ($_.Fullname -eq $CurrentVersion.Fullname)} | Remove-Item
Ungetestet!
E.
Zitat von @Crusher79:
Und was ist dem zeitlichen Abstand? Mit AddDays kann man da die besagte Woche oder mehr/ weniger enbauen.
Kann man noch einbauen.Und was ist dem zeitlichen Abstand? Mit AddDays kann man da die besagte Woche oder mehr/ weniger enbauen.
Beachte, auch Dein Beispiel berücksichtigt nur "4".
Also könnte man zusammenbauen:
$Files = dir WolfPress*.* | select Fullname,LastWriteTime | sort LastWriteTime -desc
$CurrentVersion = $Files
$Files | ?{-not ($_.Fullname -eq $CurrentVersion.Fullname) -and ($_.LastWriteTime -lt (Get-Date).AddDays(-7)) } | Remove-Item