Vi har allerede vist deg hvor fleksibelt 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-Object{$_.CreationTime –lt (Get-Date).AddDays(-5)} | Fjerne gjenstand
Forklaring
- For det første får vi FileInfo og DirectoryInfo objekter i Path C: \ Backups.
- FileInfo og DirectoryInfo-objekter inneholder begge en CreationTime-egenskap, slik at vi kan filtrere samlingen ved hjelp av den.
- Operatøren –lt (mindre enn) brukes deretter til å sammenligne CreationTime-egenskapen til objektene med Get-Date (gjeldende dato) trekker fra 5 dager.
- Dette etterlater oss med en samling objekter som ble opprettet for mer enn 5 dager siden, som vi overfører til Fjern-element.
Pro Tips
For å se hva som blir fjernet, kan du bruke parameteren –WhatIf:
Get-ChildItem –Path “C: \ Backups” –Recurse | Where-Object CreationTime –lt (Get-Date) .AddDays (-5) | Fjern-element –WhatIf
Ledeteksten
Mens vi anbefaler at du bruker en av PowerShell-metodene, uten å komme inn på noen av de grusomme detaljene, kan du også gjøre det fra ledeteksten.
forfiler -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.
forfiler -p "C: \ Backup" -s -m *. * -d -5 -c "cmd / c echo @file"