Löschen von alten Files, gemäß einer Vorgabe
Einen guten Tag an alle hier im Forum,
ich versuche in einem Verzeichnis die ältesten Files automatisch zu löschen.
Zum Beispiel alles was älter als 7 Tage ist.
Mein Code hierzu:
$path = "pfad"
$limit = (Get-Date).AddDays(-7)
$versions = Get-ChildItem $path | Where-Object { $_.PSIsContainer } | Sort-Object CreationTime -Descending | Select-Object -First 7
$versions | Where-Object { $_.LastWriteTime -lt $limit } | Remove-Item -Recurse -Force
Das ganze läuft durch, ohne eine Meldung, aber es passiert nichts. Die Files die älter als 7 tage sind werden nicht gelöscht.
Wo ist mein Fehler?
Ich bin ein absoluter Anfänger im Thema Powershell und habe mir das im Internet zusammengesucht.
Danke für eure Hilfe
hziemer
ich versuche in einem Verzeichnis die ältesten Files automatisch zu löschen.
Zum Beispiel alles was älter als 7 Tage ist.
Mein Code hierzu:
$path = "pfad"
$limit = (Get-Date).AddDays(-7)
$versions = Get-ChildItem $path | Where-Object { $_.PSIsContainer } | Sort-Object CreationTime -Descending | Select-Object -First 7
$versions | Where-Object { $_.LastWriteTime -lt $limit } | Remove-Item -Recurse -Force
Das ganze läuft durch, ohne eine Meldung, aber es passiert nichts. Die Files die älter als 7 tage sind werden nicht gelöscht.
Wo ist mein Fehler?
Ich bin ein absoluter Anfänger im Thema Powershell und habe mir das im Internet zusammengesucht.
Danke für eure Hilfe
hziemer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 32269892593
Url: https://administrator.de/forum/loeschen-von-alten-files-gemaess-einer-vorgabe-32269892593.html
Ausgedruckt am: 08.04.2025 um 11:04 Uhr
6 Kommentare
Neuester Kommentar

Hi.
gibts hier im Forum ca. drölftausend Mal.
administrator.de/latest/?search=dateien+l%C3%B6schen+%C3%A4lter+als
Gruß
gibts hier im Forum ca. drölftausend Mal.
administrator.de/latest/?search=dateien+l%C3%B6schen+%C3%A4lter+als
Gruß
Geh schrittweise ran.
Lass dir erst mal $versions anzeigen.
ChatGPT ist da auch zum lernen ziemlich hilfreich.
Ist jetzt ungetestet, sieht aber auf den ersten Blick ziemlich brauchbar aus, auch wenns besser geht.
Lass dir erst mal $versions anzeigen.
ChatGPT ist da auch zum lernen ziemlich hilfreich.
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
$targetDirectory = "C:\Pfad\Zum\Verzeichnis"
$daysThreshold = 7
$currentDate = Get-Date
$filesToDelete = Get-ChildItem -Path $targetDirectory | Where-Object { $_.LastWriteTime -lt ($currentDate.AddDays(-$daysThreshold)) }
foreach ($file in $filesToDelete) {
Remove-Item -Path $file.FullName -Force
Moin,
erstmal: Bitte Code-Tags benutzen. Das liest sich deutlich besser.
In Deiner Variablen $versions stehen nur die sieben neuesten Dateien drin, da Du erst nach dem Erstelldatum (sic!) absteigend sortierst und dann Dir nur die ersten sieben Ergebnisse anzeigen lässt. Deshalb löscht er auch nicht. Lass einfach das letzte select-object weg.
hth
Erik
erstmal: Bitte Code-Tags benutzen. Das liest sich deutlich besser.
1
$versions = Get-ChildItem $path | Where-Object { $_.PSIsContainer } | Sort-Object CreationTime -Descending | Select-Object -First 7
In Deiner Variablen $versions stehen nur die sieben neuesten Dateien drin, da Du erst nach dem Erstelldatum (sic!) absteigend sortierst und dann Dir nur die ersten sieben Ergebnisse anzeigen lässt. Deshalb löscht er auch nicht. Lass einfach das letzte select-object weg.
hth
Erik

Zitat von @erikro:
Echt? Die Frage, wo sein Fehler liegt, ist schon so oft beantwortet worden?
Zitat von @6376382705:
gibts hier im Forum ca. drölftausend Mal.
gibts hier im Forum ca. drölftausend Mal.
Echt? Die Frage, wo sein Fehler liegt, ist schon so oft beantwortet worden?
Ich bin ein absoluter Anfänger im Thema Powershell und habe mir das im Internet zusammengesucht.
Der TO versteht eh nicht, was Er da zusammen kopiert hat, wieso also nicht eine als "funktionierende Lösung" hier ausm Board nehmen/kopieren? Als ob Er sich damit beschäftigen würde ..Gruß
Hi,
Ich nehm für sowas immer DELAGE, wenn es jetzt nicht direkt in PS sein muß:
https://www.horstmuc.de/wbat32d.htm
cu,
ipzipzap
Ich nehm für sowas immer DELAGE, wenn es jetzt nicht direkt in PS sein muß:
https://www.horstmuc.de/wbat32d.htm
cu,
ipzipzap