Для того, чтобы в bat файле или просто в командной строке удалять файлы по дате, например, старые ненужные лог файлы, удобнее использовать программу forfiles (чем команду del).

Фильтрация файлов по дате в команде forfiles

Главное преимущество программы forfiles состоит в возможности фильтрации файлов по дате изменения файла, причем дата может быть задана как абсолютной датой (например, 8 марта 2019 года), так и относительной датой в днях, например, 7 дней, 30 дней или любое другое число дней

Поэтому, чтобы в командном файле удалить лог файлы вида log00001.txt, log00002.txt… старше 1 месяца, можно выполнить такую команду.

forfiles /M "log?????.txt" /c "cmd /c del /s @file" /d -30

Эта строка задает фильтрацию файлов по маске log?????.txt и по дате изменения 30 суток, с выполнением для каждого найденного файла команды удаления.

Выполнение forfiles для подкаталогов

Параметр /s задает рекурсивное выполнение команды во всех вложенных папках, поэтому этот пример удалит указанные файлы во всех подпапках:

forfiles /M "log?????.txt" /s /c "cmd /c del /s @file" /d -30

Узнать больше

Команда forfiles

forfiles корректно поддерживает работу с файлами, в именах которых есть пробелы и Unicode (не ANSI) символы.

Программа forfiles входит в комплект Windows, начиная с Windows Vista, соответственно, эти команды удаления будут работать и во всех последующих версиях Windows, не требуя добавления исполняемого файла к bat файлу.

Для использования forfiles в Windows XP можно взять исполняемый файл forfiles.exe из Windows Server 2003 Resource Kit.

Наши соцсети

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *