Powershell oder Batch - Verzeichnisinhalt auf eine Anzahl von neuesten Dateien begrenzen
Hallo an die Gemeinde,
ich bekomme von einer Kamera per ftp Bilder in ein Verzeichnis gespeichert. Der Dateiname ist ist eine Zahl für den Tag und eine fortlaufende Nummer des Kamerajobs.
Während der Produkiton können mehrere hundert Bilder abgespeichert werden. Der Anwender benötigt zur Beurteilung aber nur eine gewisse Anzahl der letzten Bilder.
Wie kann mit Hilfe einer Batch-Datei oder über Powershell das Verzeichnis ähnlich wie ein FiFo mit einer festgelegten Dateianzahl automatisch gelöscht / organisiert werden?
Die Triggerung erfolgt über einen Windows-Task täglich.
Freue mich über Vorschläge.
ich bekomme von einer Kamera per ftp Bilder in ein Verzeichnis gespeichert. Der Dateiname ist ist eine Zahl für den Tag und eine fortlaufende Nummer des Kamerajobs.
Während der Produkiton können mehrere hundert Bilder abgespeichert werden. Der Anwender benötigt zur Beurteilung aber nur eine gewisse Anzahl der letzten Bilder.
Wie kann mit Hilfe einer Batch-Datei oder über Powershell das Verzeichnis ähnlich wie ein FiFo mit einer festgelegten Dateianzahl automatisch gelöscht / organisiert werden?
Die Triggerung erfolgt über einen Windows-Task täglich.
Freue mich über Vorschläge.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 8069796672
Url: https://administrator.de/forum/powershell-oder-batch-verzeichnisinhalt-auf-eine-anzahl-von-neuesten-dateien-begrenzen-8069796672.html
Ausgedruckt am: 26.03.2025 um 04:03 Uhr
4 Kommentare
Neuester Kommentar

Powershell
Batch
Gruß siddius
$folder = "D:\Ordner"
$keep = 10
Get-ChildItem $folder -File | sort LastWriteTime -Descending | select -skip $keep | remove-item -force
@echo off
set "folder=D:\ordner"
set keep=10
for /f "skip=%keep% delims=" %%a in ('dir /b /a-d /o-d "%folder%\*.*"') do del "%folder%\%%a"

Zitat von @fischer.juergen:
Was muss ich ergänzen, dass es auch in den darunter liegenden Unterverzeichnissen klappt?
Insgesamt 10 Dateien über alle Ordner summiert oder 10 Dateien pro Unterordner?Was muss ich ergänzen, dass es auch in den darunter liegenden Unterverzeichnissen klappt?
Ich tippe mal auf "Pro Unterordner", Powershell
$folder = "D:\Ordner"
$keep = 10
foreach($folder in Get-ChildItem $folder -Directory -Recurse){
Get-ChildItem $_.Fullname -File | sort LastWriteTime -Descending | select -skip $keep | remove-item -force
}
Batch
@echo off
set "folder=D:\ordner"
set keep=10
for /f "delims=" %%a in ('dir /b /s /ad "%folder%"') do for /f "skip=%keep% delims=" %%b in ('dir /b /a-d /o-d "%%~a"') do del "%%~a\%%b"