Úvodná » ako » Ako odstrániť súbory staršie ako X dní v systéme Windows

    Ako odstrániť súbory staršie ako X dní v systéme Windows

    Už sme vám ukázali, aký flexibilný môže byť Linux shell, ale to neznamená, že Windows je ďalej za sebou. Tu sú dve techniky, ktoré môžete použiť v závislosti od preferencie shell, cmd alebo PowerShell.

    PowerShell 3

    Get-ChildItem-Cesta "C: \ Zálohovanie" -Rekurse | Kde-Object CreationTime -lt (Get-Date) .AddDays (-5) | Odstrániť položku

    PowerShell 2

    Get-ChildItem-Cesta "C: \ Zálohovanie" -Rekurse | Kde-Object $ _ VytvorenieTime -lt (Get-Date) .AddDays (-5) Odstrániť položku

    vysvetlenie

    • Najprv získame objekty FileInfo a DirectoryInfo v ceste C: \ Backups.
    • Objekty FileInfo a DirectoryInfo obsahujú vlastnosť CreationTime, takže môžeme túto kolekciu filtrovať.
    • Operátor -lt (menej ako) sa potom použije na porovnanie vlastnosti CreationTime objektov s Get-Date (aktuálnym dátumom) odčítaním 5 dní.
    • Toto nám potom necháva zbierku objektov, ktoré boli vytvorené pred viac ako 5 dňami, ktoré prejdeme na položku Odstrániť.

    Pro Tip

    Ak chcete zistiť, čo bude odstránené, môžete použiť parameter -WhatIf:

    Get-ChildItem-Cesta "C: \ Zálohovanie" -Rekurse | Kde-Object CreationTime -lt (Get-Date) .AddDays (-5) | Odstrániť položku -WhatIf

    Príkazový riadok

    Zatiaľ čo odporúčame použiť jednu z metód PowerShell, bez toho, aby ste sa dostali do niektorých detailov, môžete to urobiť aj z príkazového riadka.

    forfiles -p "C: \ Zálohovanie" -s -m *. * -d -5 -c "cmd / c del @ path"

    Pro Tip

    Ak chcete zistiť, ktoré súbory sa majú odstrániť, môžete použiť echo.

    forfiles -p "C: \ Zálohovanie" -s -m *. * -d -5 -c "cmd / c echo @file"