PowerShell 3
Get-ChildItem –Path “C:Backups” –Recurse | Where-Object CreationTime –lt (Get-Date).AddDays(-5) | Remove-Item
PowerShell 2
Get-ChildItem –Path “C:Backups” –Recurse | Where-Object{$_.CreationTime –lt (Get-Date).AddDays(-5)} | Remove-Item
Forklaring
- For det første får vi FileInfo og DirectoryInfo objekter i Ban C: Backups.
- FileInfo og DirectoryInfo-objekter inneholder begge en CreationTime-egenskap, slik at vi kan filtrere samlingen ved hjelp av det.
- Den -lt (mindre enn) operatøren brukes da til å sammenligne CreationTime-egenskapen til objektene med Get-Date (gjeldende dato) trekke 5 dager.
- Dette etterlater oss med en samling objekter som ble opprettet for mer enn 5 dager siden, som vi sender til Fjern-element.
Pro Tips
For å se hva som skal fjernes, kan du bruke parameteren -WhatIf:
Get-ChildItem –Path “C:Backups” –Recurse | Where-Object CreationTime –lt (Get-Date).AddDays(-5) | Remove-Item –WhatIf
Ledeteksten
Mens vi anbefaler at du bruker en av PowerShell-metodene, uten å komme inn i noen av de grusomme detaljene, kan du også gjøre det fra ledeteksten.
forfiles -p 'C:Backups' -s -m *.* -d -5 -c 'cmd /c del @path'
Pro Tips
For å se hvilke filer som skal slettes, kan du bruke ekko.
forfiles -p 'C:Backups' -s -m *.* -d -5 -c 'cmd /c echo @file'