Come eliminare i file meno di X Days su Windows
Vi abbiamo già mostrato quanto sia flessibile la shell di Linux, ma ciò non vuol dire che Windows sia più indietro. Ecco due tecniche che puoi utilizzare in base alla preferenza della shell, cmd o PowerShell.
PowerShell 3
Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Rimuovi oggetto
PowerShell 2
Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object $ _. CreationTime -lt (Get-Date) .AddDays (-5) | Rimuovi oggetto
Spiegazione
- In primo luogo otteniamo oggetti FileInfo e DirectoryInfo nel percorso C: \ Backups.
- Sia gli oggetti FileInfo che DirectoryInfo contengono una proprietà CreationTime, quindi possiamo filtrare la raccolta usando quello.
- L'operatore -lt (minore di) viene quindi utilizzato per confrontare la proprietà CreationTime degli oggetti con Get-Date (la data corrente) sottrarre 5 giorni.
- Questo ci lascia quindi una collezione di oggetti che sono stati creati più di 5 giorni fa, che passiamo a Remove-Item.
Suggerimento
Per vedere cosa verrà rimosso puoi usare il parametro -WhatIf:
Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Remove-Item-What If
Prompt dei comandi
Mentre ti consigliamo di utilizzare uno dei metodi di PowerShell, senza entrare in nessuno dei grossi dettagli, puoi anche farlo dal prompt dei comandi.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c del @path"
Suggerimento
Per vedere quali file saranno cancellati puoi usare echo.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c echo @file"