Pagina principala » HOWTO » 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

    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"