forfiles
- это компьютерная программа утилита для Microsoft Windows, которая выбирает файлы и запускает на них команду . Критерии выбора файла включают имя и дату последнего изменения. Спецификатор команды поддерживает некоторые специальные параметры синтаксиса. Его можно использовать непосредственно в командной строке или в пакетных файлах или других скриптах.
Команда forfiles
изначально была предоставлена как в составе Windows 98, Windows NT и Windows 2000 Resource Kits. Она стала стандартной утилитой с Windows Vista как часть новых функций управления.
Команда forfiles
имеет несколько командных строк переключатели. Если переключатели или параметры не заданы, выводится имя каждого файла в текущем каталоге.
Переключатель | Аргумент | Значение |
---|---|---|
/ P | путь | каталог (папка) для поиска файлов. По умолчанию это текущий каталог. Пути UNC (\\ machine \ share) не принимаются. |
/ M | searchmask | A glob pattern (поиск по шаблону). Выбираются только файлы, имя_файла соответствует шаблону. Расширение файла включено в имя файла; путь (имя папки) - нет. Шаблон должен совпадать со всем именем или использовать подстановочные знаки. По умолчанию совпадают все файлы. Этот параметр обрабатывает шаблоны глобусов |
/ S | (нет) | Выбирает совпадающие файлы в подкаталогах. По умолчанию поиск выполняется только в одном указанном каталоге. |
/ C | команда | Выполнить заданную команду для каждого совпадающего файла. Командную строку обычно нужно заключать в двойные кавычки. См. Ниже синтаксис в командной строке. По умолчанию используется команда CMD / C ECHO @FILE , которая вызывает вывод (отображение) имени каждого совпадающего файла. |
/ D | дата | Выбирает файлы по дате их последнего изменения. См. Синтаксис даты ниже. По умолчанию файлы выбираются независимо от их даты. |
/? | (нет) | Отображает справочное сообщение (краткие инструкции по использованию). Подавляет поиск файлов / выполнение команд. Не может использоваться с другими переключателями. |
Строка команды выполняется, как указано, за исключением случаев, указанных ниже.
Последовательности вида 0xFF
, где «0x» является буквальным, а «FF» представляет любое двузначное шестнадцатеричное число, заменяются соответствующими однозначными байтовое значение. Это можно использовать для встраивания непечатаемых символов ASCII или расширенных символов ASCII.
Последовательность \ "
заменяется буквальной кавычкой "
(хотя рекомендуется использовать 0x22
вместо этого, чтобы скрыть "
из интерпретатора команд).
Предусмотрено несколько переменных, которые будут использоваться в команде в качестве заполнителей для значений из каждого файла. Переменные технически не требуются, но необходимо использовать, если команда должна отличаться для каждого файла.
Переменная | Значение |
---|---|
@file | Имя соответствующего элемента, заключенное в двойные кавычки. |
@fname | Базовое имя соответствующего элемента (без расширения файла) в двойных кавычках. |
@ext | Расширение файла в двойных кавычках без начальной точки. Если файл имеет несколько расширений, возвращается только последний. Если файл не имеет расширения, возвращается пустая строка в кавычках. |
@path | Полный путь к соответствующему элементу, заключенный в двойные кавычки, включая букву диска и расширение файла (если любой). |
@relpath | Путь к соответствующему элементу, заключен в двойные кавычки и относительно s каталог пирогов (предоставляется / P). Каждый путь начинается с точки и обратной косой черты (. \ ). |
@isdir | Возвращает литеральную строку TRUE , если соответствующий элемент является каталогом, или FALSE , если нет. |
@fsize | Размер соответствующего элемента в байтах. Каталоги сообщают о нулевом размере. |
@fdate | Дата последнего изменения файла в локализованном формате даты текущего пользователя. |
@ftime | Время последнего изменения файла в локализованном формате времени текущего пользователя. |
Переключатель даты (/ D) выбирает файлы на основе даты их последнего изменения с учетом аргумента даты.
Аргумент даты может быть указан как буквальная дата в формате ММ / ДД / ГГГГ (другие форматы даты не принимаются). В качестве альтернативы аргумент даты может быть задан в виде числа, и в этом случае он означает возраст в днях (т. Е. День, дата, дни до текущей даты).
Если аргумент даты начинается с минуса (-), выбираются только файлы, измененные не ранее указанной даты (более старые файлы / измененные ранее). В противном случае выбираются только файлы, измененные не ранее указанной даты (более ранние файлы / измененные позже). Может быть указан явный плюс (+), но это значение по умолчанию. Обратите внимание, что оба режима выбирают файлы на заданную дату. Невозможно выбрать файлы только на заданную дату (без даты до или после).
Следующая команда выбирает все файлы журнала (*.LOG) в каталоге Windows 30 дней или старше и перечисляет их с датой.
C: \>FORFILES / PC: \ Windows / M *.LOG / D -30 / C "CMD / C ECHO @FDATE @FILE" 12.06.2015 "iis7.log" 28.05.2015 " msxml4-KB954430-enu.LOG "28.05.2015" msxml4-KB973688-enu.LOG "26.05.2015" setuperr.log "
Следующая команда удалит те же файлы.
C: \>FORFILES / PC: \ Windows / M *.LOG / D -30 / C "CMD / C DEL @PATH"
Использование CMD / C
требуется в в приведенных выше примерах, поскольку и ECHO
, и DEL
являются внутренними для командного процессора, а не внешней служебной программой программы.
forfiles
find
В Викиучебнике есть книга по теме: Руководство по Команды Windows |