Домашня » як » Як видалити файли старше X днів на Windows

    Як видалити файли старше X днів на Windows

    Ми вже показали вам, наскільки гнучка оболонка Linux може бути, але це не означає, що Windows ще більше відстає. Ось дві технології, які можна використовувати залежно від налаштувань оболонки, cmd або PowerShell.

    PowerShell 3

    Get-ChildItem -Path "C: Резервні копії" -Recurse | Де-об'єкт CreationTime -lt (Get-Date) .AddDays (-5) | Видалити-елемент

    PowerShell 2

    Get-ChildItem -Path "C: Резервні копії" -Recurse | Де-об'єкт $ _. CreationTime -lt (Get-Date) .AddDays (-5) | Видалити-елемент

    Пояснення

    • По-перше, ми отримаємо об'єкти FileInfo і DirectoryInfo у шляху C: \ t.
    • Об'єкти FileInfo і DirectoryInfo містять властивість CreationTime, тому ми можемо фільтрувати колекцію за допомогою цього.
    • Оператор -lt (less than) використовується для порівняння властивості CreationTime об'єктів з Get-Date (поточна дата) віднімають 5 днів.
    • Після цього ми отримуємо набір об'єктів, створених більше 5 днів тому, які ми переходимо до пункту Remove-Item.

    Про Рада

    Щоб дізнатися, що буде видалено, можна скористатися параметром -WhatIf:

    Get-ChildItem -Path "C: Резервні копії" -Recurse | Де-об'єкт CreationTime -lt (Get-Date) .AddDays (-5) | Remove-Item -WhatIf

    Командний рядок

    Хоча ми рекомендуємо використовувати один з методів PowerShell, не вдаючись у будь-яку з подробиць, ви також можете зробити це з командного рядка.

    forfiles -p "C: Резервні копії" -s -m *. * -d -5 -c "cmd / c del @path"

    Про Рада

    Щоб побачити, які файли будуть видалені, ви можете використовувати ехо.

    forfiles -p "C: Резервні копії" -s -m *. * -d -5 -c "cmd / c echo @file"