Per Batch Dateienname im Datumformat löschen
Hallo zusammen,
es geht um die Situation, dass auf einem Pc, der Werbeflyer abspielt, einmal täglich eine Batch laufen soll, die den Player mit taskkill beendet, mir die Dateien löscht, die nicht mehr aktuell sind (also der Dateiname hinter dem aktuellen Datum liegt) und den Player wieder startet.
die Dateien sind immer so aufgebaut YY-MM-DD.avi.
Über Forfiles hab ich es nicht hinbekommen, weil dieser Befehl nach dem Änderungsdatum geht. Ich erstelle die Dateien aber jeden Monat immer auf einmal.
Es geht nur um den Part mit dem löschen, wie bekomme ich das hin?
Vielen Dank schon mal für eure Hilfe,
Gruß
es geht um die Situation, dass auf einem Pc, der Werbeflyer abspielt, einmal täglich eine Batch laufen soll, die den Player mit taskkill beendet, mir die Dateien löscht, die nicht mehr aktuell sind (also der Dateiname hinter dem aktuellen Datum liegt) und den Player wieder startet.
die Dateien sind immer so aufgebaut YY-MM-DD.avi.
Über Forfiles hab ich es nicht hinbekommen, weil dieser Befehl nach dem Änderungsdatum geht. Ich erstelle die Dateien aber jeden Monat immer auf einmal.
Es geht nur um den Part mit dem löschen, wie bekomme ich das hin?
Vielen Dank schon mal für eure Hilfe,
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 650178
Url: https://administrator.de/forum/per-batch-dateienname-im-datumformat-loeschen-650178.html
Ausgedruckt am: 01.05.2025 um 04:05 Uhr
5 Kommentare
Neuester Kommentar

Machs gleich mit der Powershell
Das kannst du wenn du willst auch direkt aus der Batch so aufrufen
Gruß j.
ls 'D:\Ordner\*.avi' -File | sort {[datetime]::ParseExact($_.Basename,'yy-MM-dd',$null)} -Desc | select -Skip 1 | rm -Force -Verbose
@echo off
powershell -EP Bypass -C "ls 'D:\Ordner\*.avi' -File | sort {[datetime]::ParseExact($_.Basename,'yy-MM-dd',$null)} -Desc | select -Skip 1 | rm -Force -Verbose"
Gruß j.

Zitat von @Hihatchi:
Das Problem ist leider immer noch aktuell, ich bekomm es einfach nicht hin :/ weiß keiner eine funktionierende Lösung, oder warum das skript von 147323 bei mir nicht geht?
Das Problem ist leider immer noch aktuell, ich bekomm es einfach nicht hin :/ weiß keiner eine funktionierende Lösung, oder warum das skript von 147323 bei mir nicht geht?
Ich denke das liegt daran das deine Beschreibung einfach nur etwas missverständlich geschrieben ist, ich versuche mal deine Beschreibung so zu interpretieren
ls 'D:\Ordner\*.avi' -File | ?{[datetime]::ParseExact($_.Basename,'yy-MM-dd',$null) -lt (get-date).Date } | rm -Force -Verbose
Der Code von @147323 hat deine Beschreibung stattdessen so interpretiert das nur die aktuellste Datei im Verzeichnis erhalten bleiben soll. Kann ja keiner vorhersehen das da Dateien mit Datum in der Zukunft liegen
hth
Gruß SK