Cum să ștergeți fișiere mai vechi de X zile pe Windows
V-am arătat deja cât de flexibilă este shell-ul Linux, dar asta nu înseamnă că Windows nu mai este în urmă. Iată două tehnici pe care le puteți utiliza în funcție de preferința dvs. shell, cmd sau PowerShell.
PowerShell 3
Get-ChildItem -Path "C: \ Backupuri" -Recurnați | Unde-Obiect CreationTime -lt (Get-Date) .AddDays (-5) | Eliminați-Articol
PowerShell 2
Get-ChildItem -Path "C: \ Backupuri" -Recurnați | Unde-Obiect $ _ CreationTime -lt (Get-Date) .AddDays (-5) Eliminați-Articol
Explicaţie
- Mai întâi obținem obiecte FileInfo și DirectoryInfo în C: \ Backups.
- Fișierele FileInfo și DirectoryInfo conțin ambele proprietăți CreationTime, astfel încât să putem filtra colecția utilizând.
- Operatorul -lt (mai puțin decât) este apoi utilizat pentru a compara proprietatea CreationTime a obiectelor cu Get-Date (data curentă) scăzând 5 zile.
- Aceasta ne lasă apoi o colecție de obiecte care au fost create mai mult de 5 zile în urmă, pe care le trecem la Remove-Item.
Pro Tip
Pentru a vedea ce vor fi eliminate, puteți folosi parametrul -WhatIf:
Get-ChildItem -Path "C: \ Backupuri" -Recurnați | Unde-Obiect CreationTime -lt (Get-Date) .AddDays (-5) | Eliminați-item -WhatIf
Comandă de comandă
În timp ce vă recomandăm să utilizați una dintre metodele PowerShell, fără a intra în oricare dintre detaliile pietricele, puteți să o faceți și din comanda de comandă.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c del @path"
Pro Tip
Pentru a vedea ce fișiere vor fi șterse, puteți folosi ecou.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c echo @file"