Простые действия в Windows не всегда простые:)
Для удаления файлов старше какого-либо периода в Unix отлично справляется нативная команда find.
Для Windows времен 2000 и XP приходилось использовать либо сторонние программы, либо писать на VBS.
Но начиная с Windows7 в поставке появилась утилита forfiles, которая легко решает данную задачу.
Напишем bat-файл для удаления файлов старше 30 дней из директории C: emplogs:
- -p – Путь
- -s – Разрешаем ходить рекурсивно
- -d – Дата (Можно указать точную дату формата ‘dd.MM.yyyy’)
- -30 – относится к ключу ‘-d’ и указывает, что ищем файлы старше 30 дней
- -с – Команда, которая выполняется для каждого файла
В двух словах:
Рекурсивно ищем все (можно искать по маске файла, добавив ключ ‘-m *.log’) файлы в директории ‘C: emplogs’, которые старше 30 дней, далее каждое вхождение передаем команде ‘cmd /c del @path /q‘ , где:
Одной из особенностей последних версий Windows 10 является способность поддерживать себя в чистоте, автоматически удаляя ставшие ненужными по истечении определённого срока файлы. В более ранних версиях системы, в которых эта функция ещё не реализована, для удаления старых файлов можно использовать командную строку, консоль PowerShell и даже Проводник, хотя процедура очистки с помощью последнего не так удобна.
Рассмотрим все три варианта.
Удаление старых файлов с помощью Проводника
Лента Проводника Windows 10 и 8.1 содержит инструмент, который позволяет отсортировать все файлы в каталоге по дате изменения, типу, размеру и некоторым другим свойствам. Допустим, вы хотите удалить файлы старше одного месяца. Зайдите в папку с залежавшимися в ней файлам и нажмите на клавиатуре F3 . При этом вы будете переключены в ленте Проводника в раздел поиска.
Кликните по иконке «Дата изменения» и выберите в выпадающем списке нужный период времени, в данном случае месяц.
Проводник тут же отсортирует все файлы по заданному параметру, так что вам останется только выделить их мышкой и отправить в Корзину. Способ простой, но не особо удобный, поскольку всё приходится делать руками. Есть куда более эффективный метод удаления старых файлов и сейчас как раз мы его рассмотрим.
Удаление старых файлов в командной строке
Для удаления файлов с «истёкшим сроком годности» мы будем использовать консольную утилиту ForFiles.exe , отвечающую за выбор объекта и выполнение с ним указанного действия. Утилита поддерживает несколько параметров, а именно:
• /S — позволяет выполнять рекурсивный поиск.
• /P — указывает путь к разделу или каталогу.
• /D — указывает количество дней с момента последней модификации.
• /C — задаёт команду действия над файлом.
В команде ForFiles также можно указывать возвращающие различные значения переменные, например, @file , которая возвращает имя файла и которую мы будем использовать. Удалим для примера все файлы старше 10 дней в папке «Картинки», лежащей в корне системного диска.
Открываем командную строку и выполняем такую команду:
Создаем обычный .bat файл, сделать это можно с помощью блокнота.
Вписываем туда команду
Forfiles -p "C:папка с файлами" -s -m *.* -d -60 -c "cmd /c del /q @path"
-p папка в которой мы будем удалять файлы
-s рекурсивное удаление (удаление во всех папках и под папках)
-m маска поиска файлов
-d (количество дней) выбор файлов, у которых дата изменения меньше или равна (-) текущей даты.
-с команда, которая выполняется для каждого файла
del – команда удаления
/q – отключения запросов на подтверждение при удалении