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
Please also mark the comments that contributed to the solution of the article
Content-Key: 361455
Url: https://administrator.de/contentid/361455
Printed on: April 26, 2024 at 13:04 o'clock
3 Comments
Latest comment
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