Homepage » come » Come eliminare i file meno di X Days su Windows

    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"