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

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

PowerShell 3

Get-ChildItem – путь «C: \ Backups» – возврат | Where-Object CreationTime –lt (Get-Date) .AddDays (-5) | Удалить объект

PowerShell 2

Get-ChildItem – путь «C: \ Backups» – возврат | Where-Object {$ _. CreationTime –lt (Get-Date) .AddDays (-5)} | Удалить объект

Объяснение

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

Профессиональный совет

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

Get-ChildItem – путь «C: \ Backups» – возврат | Where-Object CreationTime –lt (Get-Date) .AddDays (-5) | Remove-Item -WhatIf

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

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

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

Профессиональный совет

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

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

Оцените статью
TutoryBird.Ru
Добавить комментарий