Powershell alle Daten Löschen ausser die 5 neusten
Hallo Zusammen 
Ich habe mit meinem Freund ein kleines Skript gemacht welches alle Daten von path löscht ausser die 5 neusten.
Jedoch würden wir gerne dass das Skript nur *.bak und *.zip löscht wie geht das :D?
HIer unsere Skript:
$ErrorActionPreference = "Stop"
$logDir = "C:\Users\fde\Desktop\logs"
$timeStamp = Get-Date -Format "yyyy.MM.ddHHmm"
$logFile = "PowerShell_transcript_$($timeStamp).txt"
Start-Transcript (Join-Path $logDir $logFile)
$path = "C:\Users\fde\Desktop\test"
$errorLogPath = "C:\Users\fde\Desktop\logs”
$files = Get-ChildItem -Path $path -Recurse
$keep = 5
if ($files.Count -gt $keep) {
$files | Sort-Object CreationTime | Select-Object -first ($files.Count - $keep) | Remove-Item -Force
}
Stop-Transcript
Gruss
FabriHublot
Ich habe mit meinem Freund ein kleines Skript gemacht welches alle Daten von path löscht ausser die 5 neusten.
Jedoch würden wir gerne dass das Skript nur *.bak und *.zip löscht wie geht das :D?
HIer unsere Skript:
$ErrorActionPreference = "Stop"
$logDir = "C:\Users\fde\Desktop\logs"
$timeStamp = Get-Date -Format "yyyy.MM.ddHHmm"
$logFile = "PowerShell_transcript_$($timeStamp).txt"
Start-Transcript (Join-Path $logDir $logFile)
$path = "C:\Users\fde\Desktop\test"
$errorLogPath = "C:\Users\fde\Desktop\logs”
$files = Get-ChildItem -Path $path -Recurse
$keep = 5
if ($files.Count -gt $keep) {
$files | Sort-Object CreationTime | Select-Object -first ($files.Count - $keep) | Remove-Item -Force
}
Stop-Transcript
Gruss
FabriHublot
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 361455
Url: https://administrator.de/forum/powershell-alle-daten-loeschen-ausser-die-5-neusten-361455.html
Ausgedruckt am: 05.05.2025 um 03:05 Uhr
3 Kommentare
Neuester Kommentar

Die Zeile ändern:
$files = Get-ChildItem -Path "$path\*" -Include '*.bak','*.zip' -Recurse -Force | ?{!$_.PSIsContainer}

Och nö, du sollst die Zeile ändern nicht die Zeile als Ganzes Skript nehmen .....
Also nochmal zum abtippen und das Löschen außer der 5 aktuellsten vereinfacht
Geht!, und tschö.
Also nochmal zum abtippen und das Löschen außer der 5 aktuellsten vereinfacht
$ErrorActionPreference = "Stop"
$logDir = "C:\Users\fde\Desktop\logs"
$timeStamp = Get-Date -Format "yyyy.MM.ddHHmm"
$logFile = "PowerShell_transcript_$($timeStamp).txt"
Start-Transcript (Join-Path $logDir $logFile)
$path = "C:\Users\fde\Desktop\test"
$keep = 5
Get-ChildItem -Path "$path\*" -Include '*.bak','*.zip' -Recurse -Force | ?{!$_.PSIsContainer} | sort CreationTime -Desc | Select -Skip $keep | remove-Item -Force
Stop-Transcript