Slik sletter du filer som er eldre enn X dager på Windows
Vi har allerede vist deg hvor fleksibel Linux-skallet kan være, men det er ikke å si at Windows er lenger bak. Her er to teknikker du kan bruke avhengig av shell preferanse, cmd eller PowerShell.
PowerShell 3
Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Fjerne gjenstand
PowerShell 2
Get-ChildItem -Path "C: \ Backups" -Recurse | Hvor-objekt $ _. CreationTime -lt (Get-Date) .AddDays (-5) | Fjerne gjenstand
Forklaring
- For det første får vi FileInfo og DirectoryInfo-objekter i sti C: \ Backups.
- FileInfo og DirectoryInfo-objekter inneholder begge en CreationTime-egenskap, slik at vi kan filtrere samlingen ved hjelp av det.
- Operatøren -lt (mindre enn) brukes da til å sammenligne egenskapen CreationTime for 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) | Fjern-Vare-HvaIf
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 ekko @fil"