Główna » jak » Jak usunąć pliki starsze niż X dni w systemie Windows

    Jak usunąć pliki starsze niż X dni w systemie Windows

    Pokazaliśmy już, jak elastyczna może być powłoka Linuksa, ale to nie znaczy, że Windows jest już daleko w tyle. Oto dwie techniki, których możesz użyć w zależności od preferencji powłoki, cmd lub PowerShell.

    PowerShell 3

    Get-ChildItem -Path "C: \ Backup" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Usuń przedmiot

    PowerShell 2

    Get-ChildItem -Path "C: \ Backup" -Recurse | Gdzie-Object $ _. CreationTime -lt (Get-Date) .Dodatki (-5) | Usuń przedmiot

    Wyjaśnienie

    • Najpierw dostajemy obiekty FileInfo i DirectoryInfo w ścieżce C: \ Kopie zapasowe.
    • Obiekty FileInfo i DirectoryInfo zawierają właściwość CreationTime, dzięki czemu możemy filtrować kolekcję przy użyciu tej właściwości.
    • Operator -lt (mniejszy niż) jest następnie używany do porównywania właściwości CreationTime obiektów z Get-Date (bieżąca data) odejmowania 5 dni.
    • To pozostawia nam kolekcję obiektów, które zostały utworzone ponad 5 dni temu, które przechodzimy do Remove-Item.

    Pro Tip

    Aby zobaczyć, co zostanie usunięte, możesz użyć parametru -WhatIf:

    Get-ChildItem -Path "C: \ Backup" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Usuń element - WhatIf

    Wiersz polecenia

    Chociaż zalecamy użycie jednej z metod PowerShell, bez wchodzenia w szczegóły, możesz to zrobić również z wiersza poleceń.

    forfiles -p "C: \ Kopie zapasowe" -s -m *. * -d -5 -c "cmd / c del @path"

    Pro Tip

    Aby zobaczyć, jakie pliki mają zostać usunięte, możesz użyć echa.

    forfiles -p "C: \ Kopie zapasowe" -s -m *. * -d -5 -c "cmd / c echo @file"