Как автоматически удалить файлы старше X дней с помощью PowerShell

239
w i n d o w s 31.webp

Последнее обновление 07.02.2023 — Алёна Кузнецова

В Windows 10 контроль памяти — это функция, которая автоматически освобождает место, когда у вас заканчивается хранилище. Эта функция работает путем удаления ненужных системных файлов, тех файлов, которые находились в корзине или папке «Загрузки» более месяца, и создания содержимого OneDrive, которое вы использовали какое-то время, только в Интернете.

Хотя эта функция может быть полезна для управления пространством для хранения, она ограничена и не предлагает возможность вручную добавлять различные местоположения для отслеживания и удаления файлов, которые не изменились за последний месяц. Если вы храните неважные файлы в другом месте, можно использовать PowerShell и планировщик заданий для мониторинга и очистки файлов из любой папки старше указанного количества дней.

В этом руководстве вы узнаете, как автоматически удалять файлы, которые не изменялись за последний месяц или любое количество дней, указанное вами в Windows 10. (Эти шаги также должны работать в Windows 11.)

Важно: рекомендуется протестировать команду, используя временную папку, так как ввод неправильной команды может привести к удалению неправильных файлов.

Удалить файлы старше X дней в Windows 10 из PowerShell

Чтобы удалить старые файлы из определенного места в Windows 10, выполните следующие действия:

  1. Откройте Пуск в Windows 10.

  2. Найдите Windows PowerShell, щелкните результат правой кнопкой мыши и выберите параметр «Запуск от имени администратора».

  3. Введите следующую команду, чтобы удалить файлы, которые не изменялись за последние 30 дней, и нажмите Enter:

    Get-ChildItem –Path "C:\path\to\folder" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | Remove-Item

    В команде измените "C:\path\to\folder" путь с расположением папки и изменить -30 для возраста файла с момента последней модификации.

Автоматически удалять файлы старше X дней в Windows 10 из планировщика заданий

Предыдущая команда позволяет удалять файлы в папке старше 30 дней, но вам нужно открывать PowerShell и выполнять команду вручную каждый раз, когда вы хотите освободить место. Вы всегда можете автоматизировать процесс, создав сценарий и запустив его по определенному расписанию с помощью планировщика заданий.

Создайте скрипт PowerShell с помощью Блокнота

Чтобы создать сценарий PowerShell для удаления файлов старше X дней в Windows 10, выполните следующие действия:

  1. Откройте Пуск.

  2. Найдите Блокнот и щелкните верхний результат, чтобы открыть интерфейс.

  3. Скопируйте и вставьте следующую команду в текстовый файл Блокнота:

    Get-ChildItem –Path "C:\path\to\folder" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | Remove-Item

    В команде измените этот путь «C:\path\to\folder» на расположение папки и «-30» на возраст файла с момента последней модификации.

  4. Щелкните меню «Файл».

  5. Выберите опцию Сохранить как.

  6. Сохраните файл, используя имя и расширение cleanup.ps1.

Создать задачу с помощью планировщика заданий

Чтобы автоматически запустить сценарий PowerShell для удаления старых файлов с помощью планировщика заданий, выполните следующие действия:

  1. Откройте Пуск.

  2. Найдите планировщик заданий и щелкните результат.

  3. (Необязательно) Щелкните правой кнопкой мыши папку «Библиотека планировщика заданий» и выберите параметр «Новая папка».

  4. Подтвердите имя папки и нажмите кнопку ОК.

  5. Щелкните папку правой кнопкой мыши и выберите параметр «Создать задачу».

  6. Подтвердите название задачи в настройке «Имя».

  7. На вкладке «Общие» в разделе «Параметры безопасности» выберите параметр «Выполнять независимо от того, вошел ли пользователь в систему или нет». (При выборе этого параметра командное окно не будет отображаться при автоматическом запуске задачи.)

  8. Снимите флажок «Не сохранять пароль».

  9. Перейдите на вкладку «Триггеры».

  10. Нажмите кнопку Создать.

  11. Выберите опцию «По расписанию» в настройке «Начать задачу».

  12. В разделе «Настройки» укажите, когда запускать задачу (например, «Вовремя», «Ежедневно», «Еженедельно», «Ежемесячно»). Какой бы вариант вы ни выбрали, укажите параметры запуска с правой стороны.

  13. Нажмите кнопку ОК.

  14. Щелкните вкладку Действия.

  15. Нажмите кнопку «Создать».

  16. Выберите опцию «Запустить программу» в настройках «Действия».

  17. Введите следующую команду в настройках «Программа/скрипт»:

    powershell.exe
  18. Введите следующую команду в параметр «Добавить аргументы» и нажмите кнопку «ОК»:

    -ExecutionPolicy Bypass C:\path\to\cleanup.ps1

    Измените путь «C:\path\to\cleanup.ps1» на ранее созданное расположение сценария PowerShell для удаления файлов в команде.

  19. Щелкните вкладку Настройки.

  20. Проверьте следующие параметры:

    • Разрешить запуск задачи по требованию.
    • Запустите задачу как можно скорее после того, как запланированный запуск будет пропущен.
    • Если задача не удалась, перезапустите все.
  21. Нажмите кнопку ОК.

  22. Подтвердите свое административное имя пользователя и пароль (если применимо).

  23. Нажмите кнопку ОК.

После выполнения этих шагов сценарий PowerShell будет запускаться по расписанию, удаляя файлы старше указанного вами количества дней. Не забудьте изменить имя или переместить папку в другое место. В противном случае задание будет провалено.

По теме:  Как удалить значок колокольчика уведомлений с панели задач в Windows 11