Домашняя » как » Как удалить файлы старше X дней в Windows

    Как удалить файлы старше X дней в Windows

    Мы уже показали вам, насколько гибкой может быть оболочка Linux, но это не значит, что Windows отстает. Вот два метода, которые вы можете использовать в зависимости от ваших настроек оболочки, cmd или PowerShell.

    PowerShell 3

    Get-ChildItem -Path «C: \ Backups» -Recurse | Где-объект CreationTime -lt (Get-Date) .AddDays (-5) | Удалить объект

    PowerShell 2

    Get-ChildItem -Path «C: \ Backups» -Recurse | Where-Object $ _. CreationTime -lt (Get-Date) .AddDays (-5) | Удалить объект

    объяснение

    • Сначала мы получаем объекты FileInfo и DirectoryInfo в пути C: \ Backups.
    • Оба объекта FileInfo и DirectoryInfo содержат свойство CreationTime, поэтому мы можем отфильтровать коллекцию, используя это.
    • Затем оператор -lt (меньше чем) используется для сравнения свойства CreationTime объектов с Get-Date (текущая дата), вычитающим 5 дней.
    • Затем мы получаем коллекцию объектов, созданных более 5 дней назад, которые мы передаем в Remove-Item.

    Pro Tip

    Чтобы увидеть, что будет удалено, вы можете использовать параметр -WhatIf:

    Get-ChildItem -Path «C: \ Backups» -Recurse | Где-объект CreationTime -lt (Get-Date) .AddDays (-5) | Remove-Item -WhatIf

    Командная строка

    Хотя мы рекомендуем использовать один из методов PowerShell, не вдаваясь в подробности, вы также можете сделать это из командной строки.

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

    Pro Tip

    Чтобы увидеть, какие файлы будут удалены, вы можете использовать echo.

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