Форфили
forfiles
— это компьютерная программная утилита для Microsoft Windows , которая выбирает файлы и запускает над ними команду . Критерии выбора файла включают имя и дату последнего изменения. Спецификатор команды поддерживает некоторые специальные параметры синтаксиса. Его можно использовать непосредственно в командной строке , в пакетных файлах или других сценариях .
The forfiles
Изначально команда была предоставлена как надстройка в Windows 98 . [1] Windows НТ [ нужна ссылка ] и винда 2000 [2] Ресурсные наборы . Она стала стандартной утилитой Windows Vista как часть новых функций управления .
Использование
[ редактировать ]The forfiles
Команда имеет несколько ключей командной строки . Если не заданы переключатели или параметры, выводится имя каждого файла в текущем каталоге .
Переключатели
[ редактировать ]Выключатель | Аргумент | Значение |
---|---|---|
/П | путь | Каталог ( папка ) для поиска файлов. По умолчанию используется текущий каталог. UNC-пути (\\machine\share) не принимаются. |
/М | маска поиска | Шаблон с подстановочными знаками (поиск по подстановочным знакам). Выбираются только файлы, имена которых соответствуют шаблону. Расширение файла включено в имя файла; путь (имя папки) нет. Шаблон должен соответствовать всему имени или использовать подстановочные знаки. По умолчанию используется соответствие всем файлам.
Эта опция обрабатывает шаблоны glob |
/С | (никто) | Выбирает соответствующие файлы в подкаталогах. По умолчанию поиск осуществляется только в одном указанном каталоге. |
/С | команда | Выполните данную команду для каждого соответствующего файла. Командную строку обычно необходимо заключать в двойные кавычки. Ниже приведен синтаксис командной строки. Команда по умолчанию CMD /C ECHO @FILE , в результате чего выводится (отображается) имя каждого соответствующего файла.
|
/Д | дата | Выбирает файлы на основе даты их последнего изменения. Синтаксис даты см. ниже. По умолчанию файлы выбираются независимо от их даты. |
/? | (никто) | Отображает справочное сообщение (краткую инструкцию по использованию). Подавляет поиск файлов/выполнение команд. Не может использоваться с каким-либо другим переключателем. |
Синтаксис команды
[ редактировать ]Командная строка выполняется, как указано, за исключением случаев, отмеченных ниже.
Последовательности формы 0xFF
, где «0x» является буквальным, а «FF» представляет собой любое двузначное шестнадцатеричное число, заменяются соответствующим однобайтовым значением. Это можно использовать для встраивания непечатаемых символов ASCII или расширенных символов ASCII.
Последовательность \"
заменяется буквальной кавычкой "
. Используя форму последовательности 0x, описанную ранее, 0x22
также можно использовать, что дополнительно скрывает "
из командного интерпретатора.
несколько переменных Предусмотрено , которые можно использовать в команде в качестве заполнителей для значений из каждого файла. Переменные технически не требуются, но их необходимо использовать, если команда должна меняться для каждого файла.
Переменная | Значение |
---|---|
@файл | Имя соответствующего элемента в двойных кавычках. |
@fname | Базовое имя соответствующего элемента (без расширения файла), заключенное в двойные кавычки. |
@ext | Расширение файла в двойных кавычках без начальной точки. Если файл имеет несколько расширений, возвращается только последнее. Если файл не имеет расширения, возвращается пустая строка в кавычках. |
@путь | Полный путь к соответствующему элементу в двойных кавычках, включая букву диска и расширение файла (если есть). |
@relpath | Путь соответствующего элемента в двойных кавычках относительно начального каталога (заданного /P). Каждый путь начинается с точки и обратной косой черты ( .\ ).
|
@исдир | Оценивает буквальную строку TRUE если соответствующий элемент является каталогом, или FALSE если не.
|
@fsize | Размер соответствующего элемента в байтах . Каталоги сообщают о нулевом размере. |
@fdate | Дата последнего изменения файла в локализованном формате даты текущего пользователя. |
@ftime | Время последнего изменения файла в формате локализованного времени текущего пользователя. |
Синтаксис даты
[ редактировать ]Переключатель даты (/D) выбирает файлы на основе даты их последнего изменения с учетом аргумента даты .
Аргумент даты может быть задан как буквальная дата в формате ММ/ДД/ГГГГ (другие форматы даты не принимаются). В качестве альтернативы аргумент даты может быть задан в виде числа, и в этом случае он означает возраст в днях (т. е. число дней до текущей даты).
Если аргумент даты начинается с минуса (-), выбираются только файлы, измененные не позднее указанной даты (более старый файл/измененный ранее). В противном случае выбираются только файлы, измененные в указанную дату или после нее (более ранние файлы/измененные позже). Может быть указан явный плюс (+), но это значение по умолчанию. Обратите внимание, что оба режима выбирают файлы на указанную дату. Нет возможности выбрать файлы только по заданной дате (без еще ни до, ни после).
Примеры
[ редактировать ]Следующая команда выбирает все файлы журналов (*.LOG) в каталоге Windows старше 30 дней и выводит их список с датой.
C:\>FORFILES /P C:\Windows /M *.LOG /D -30 /C "CMD /C ECHO @FDATE @FILE"
6/12/2015 "iis7.log"
5/28/2015 "msxml4-KB954430-enu.LOG"
5/28/2015 "msxml4-KB973688-enu.LOG"
5/26/2015 "setuperr.log"
Следующая команда удалит те же файлы.
C:\>FORFILES /P C:\Windows /M *.LOG /D -30 /C "CMD /C DEL @PATH"
Использование CMD /C
требуется в приведенных выше примерах, поскольку оба ECHO
и DEL
являются внутренними для командного процессора , а не внешними служебными программами.
См. также
[ редактировать ]- cmd.exe — программа, реализующая интерпретатор командной строки Windows.
- Цикл Foreach . Команды FOR и FORFILES реализуют цикл for-each.
- find (Unix) – команда Unix, которая находит файлы по атрибуту, аналогично
forfiles
- найти (Windows) — команда DOS и Windows, которая находит текст, соответствующий шаблону.
- grep — команда Unix, которая находит текст, соответствующий шаблону, аналогично Windows.
find
Ссылки
[ редактировать ]- «ФОРФАЙЛС», Microsoft Windows (Программное обеспечение), 6.1.7600.16385, Microsoft, 13 июля 2009 г. .
- «Форфилы» . ТехНет . Майкрософт. 17 апреля 2012 года . Проверено 28 апреля 2016 г.
- Саймон Шеппард. «ФОРФАЙЛ.exe» . СС64 . Проверено 28 апреля 2016 г.
- ^ «Forfiles.exe — утилита Windows 98 Resource Kit» . Архивировано из оригинала 11 января 2020 г. Проверено 11 января 2020 г.
- ^ Forfiles.exe — утилита Windows 2000 Resource Kit
Внешние ссылки
[ редактировать ]