Vi har redan visat hur flexibel Linux-skalet kan vara , men det är inte att säga att Windows ligger längre bak. Här är två tekniker du kan använda beroende på din skalpreferens, cmd eller PowerShell.
PowerShell 3
Get-ChildItem –Path “C: \ Backups” –Recurse | Where-Object CreationTime –lt (Get-Date) .AddDays (-5) | Ta bort sak
PowerShell 2
Get-ChildItem –Path “C: \ Backups” –Recurse | Var-Object{$_.CreationTime –lt (Get-Date).AddDays(-5)} | Ta bort sak
Förklaring
- Först får vi FileInfo och DirectoryInfo-objekt i sökvägen C: \ Backups.
- FileInfo- och DirectoryInfo-objekt innehåller båda en CreationTime-egenskap, så att vi kan filtrera samlingen med den.
- Operatorn –lt (mindre än) används sedan för att jämföra objektets CreationTime-egenskap med Get-Date (det aktuella datumet) subtraherar 5 dagar.
- Detta lämnar oss sedan med en samling objekt som skapades för mer än 5 dagar sedan, som vi skickar till Ta bort-objekt.
Proffstips
För att se vad som tas bort kan du använda parametern –WhatIf:
Get-ChildItem –Path “C: \ Backups” –Recurse | Where-Object CreationTime –lt (Get-Date) .AddDays (-5) | Ta bort objekt –WhatIf
Kommandotolken
Medan vi rekommenderar att du använder en av PowerShell-metoderna kan du också göra det från kommandotolken utan att komma in i någon av de grusiga detaljerna.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c del @path"
Proffstips
För att se vilka filer som kommer att raderas kan du använda eko.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c echo @file"