If-Koubou

Cum să ștergeți fișiere mai vechi de X zile pe Windows

Cum să ștergeți fișiere mai vechi de X zile pe Windows (Cum să)

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țele dvs. de shell, cmd sau PowerShell.

PowerShell 3

Get-ChildItem -Path "C: \ Backupuri" -Resurse | Unde-Object CreationTime -lt (Get-Date) .AddDays (-5) | Eliminați-Articol

PowerShell 2

Get-ChildItem -Path "C: \ Backupuri" -Resurse | Unde-Obiect $ _. CreationTime -lt (Get-Date) .AddDays (-5) Eliminați-Articol

Explicaţie

  • Mai întâi primim 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 folosit pentru a compara proprietatea CreationTime a obiectelor cu Data de primire (data curentă) scădere de 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 va fi eliminat, puteți utiliza parametrul -WhatIf:

Get-ChildItem -Path "C: \ Backupuri" -Resurse | Unde-Object 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 niciunul dintre detaliile pietonale, puteți să o faceți și din linia de comandă.

forfiles -p "C: \ Backupuri" -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"