Найти в Дзене
Хакни нормальность

2 способа удалить файлы старше N дней в Windows

Иногда случается, что нужно почистить папку с кучей однотипных файлов, например резервные копии или папка с временными файлами, при этом удалить не все файлы, а только те что старше определенного времени. Например файлы, которые были созданы неделю или месяц назад. Сделать в #Windows это просто и при этом не нужно ничего устанавливать. Сейчас покажу целых 2 встроенных способа. Внимание! Бездумное выполнение приведённых команд может привести к потере данных, поэтому будьте внимательны. Информация представлена в образовательных целях используйте на свой страх и риск! ;) Удаление файлов старше N дней в Windows с помощью команды forfiles Данная команда идёт в стандартном комплекте Windows. Чтобы удалить с ее помощью все файлы с м .bak в папке E:\Backup старше 30 дней нужно запустить cmd и ввести вот такую команду: forfiles.exe -p E:\Backup\ -d -30 -m *.bak -c "cmd /c del /q @path" Здесь после ключа -p мы указываем папку которую нужно почистить, -d количество дней, -m маска по которой иск
Оглавление

Иногда случается, что нужно почистить папку с кучей однотипных файлов, например резервные копии или папка с временными файлами, при этом удалить не все файлы, а только те что старше определенного времени. Например файлы, которые были созданы неделю или месяц назад. Сделать в #Windows это просто и при этом не нужно ничего устанавливать. Сейчас покажу целых 2 встроенных способа.

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

Внимание! Бездумное выполнение приведённых команд может привести к потере данных, поэтому будьте внимательны. Информация представлена в образовательных целях используйте на свой страх и риск! ;)

Удаление файлов старше N дней в Windows с помощью команды forfiles

Данная команда идёт в стандартном комплекте Windows. Чтобы удалить с ее помощью все файлы с м .bak в папке E:\Backup старше 30 дней нужно запустить cmd и ввести вот такую команду:

forfiles.exe -p E:\Backup\ -d -30 -m *.bak -c "cmd /c del /q @path"

Здесь после ключа -p мы указываем папку которую нужно почистить, -d количество дней, -m маска по которой искать файлы, а -c "cmd /c del /q @path" выполняет удаление. Если запустить команду без ключа -c и его параметра, то на экран выведется только список найденных файлов.

Список файлов старше 30 дней.
Список файлов старше 30 дней.
Обратите внимание, что параметр -d в примере принимает отрицательное значение!

Вообще можно выполнять не только удаление, а любую другую команду, но это вам уже для самостоятельного изучения!

Удаление файлов старше N дней с помощью PowerShell

Создайте в блокноте файл с расширением ps1 (Например deleteold.ps1) следующего содержимого.

$days=15
$startdate = (Get-Date).AddDays(-$days)
$delpath = "C:\Users\User\Downloads"
Get-ChildItem -Recurse -Path $delpath | Where-Object -Property CreationTime -LT $startdate | Remove-Item

Здесь в переменной $days мы указываем старше скольки дней файлы искать, а в переменной $delpath - путь к папке с файлами.

Выполнить очистку можно запустив исполнение файла в PowerShell, например кликнув по нему правой кнопкой в проводнике и выбрав пункт "Выполнить с помощью #PowerShell"

Запуск PowerShell скрипта
Запуск PowerShell скрипта

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

Как очистить Windows и освободить 40 гигабайт за раз
Хакни нормальность18 мая 2021

Напишите в комментариях в какой ситуации вам подобное решение было бы полезно!

Если статья оказалась полезной ставьте большой палец вверх! Подписывайтесь на канал!