BorlandIMHO
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: C:\Users\Borland>for /? Выполнение указанной команды для каждого файла набора. FOR %переменная IN (набор) DO команда [параметры] %переменная Однобуквенный подставляемый параметр. (набор) Определяет набор, состоящий из одного или нескольких файлов. Допускается использование подстановочных знаков. команда Команда, которую следует выполнить для каждого файла. параметры Параметры и ключи для указанной команды. В пакетных файлах для команды FOR используется запись %%переменная вместо %переменная. Имена переменных учитывают регистр букв (%i отличается от %I). Если включена расширенная обработка команд, поддерживаются следующие дополнительные формы команды FOR: FOR /D %переменная IN (набор) DO команда [параметры] Если набор содержит подстановочные знаки, команда выполняется для всех подходящих имен каталогов, а не имен файлов. FOR /R [[диск:]путь] %переменная IN (набор) DO команда [параметры] Выполнение команды для каталога [диск:]путь, а также для всех подкаталогов этого пути. Если после ключа /R не указано имя каталога, используется текущий каталог. Если набор - это одиночный символ точки (.), команда просто перечисляет дерево каталогов. FOR /L %переменная IN (начало,шаг,конец) DO команда [параметры] Набор раскрывается в последовательность чисел с заданными началом, концом и шагом приращения. Так, набор (1,1,5) раскрывается в (1 2 3 4 5), а набор (5,-1,1) - в (5 4 3 2 1) FOR /F ["ключи"] %переменная IN (набор-файлов) DO команда [параметры] FOR /F ["ключи"] %переменная IN ("строка") DO команда [параметры] FOR /F ["ключи"] %переменная IN ('команда') DO команда [параметры] или, если использован параметр usebackq: FOR /F ["ключи"] %переменная IN (набор-файлов) DO команда [параметры] FOR /F ["ключи"] %переменная IN ('строка') DO команда [параметры] FOR /F ["ключи"] %переменная IN (`команда`) DO команда [параметры] Набор файлов содержит имена одного или нескольких файлов, которые по очереди открываются, читаются и обрабатываются. Обработка состоит в чтении файла, разбивке его на отдельные строки текста и разборе каждой строки в ноль или более подстрок. Затем вызывается тело цикла "for", при выполнении которого каждая найденная подстрока используется в качестве значения переменной. По умолчанию ключ /F выделяет из каждой строки каждого файла первую отделенную пробелами подстроку. Пустые строки в файле пропускаются. Необязательный параметр "ключи" служит для переопределения правил разбора по умолчанию. Он представляет собой заключенную в кавычки строку, содержащую одно или несколько ключевых слов для определения параметров разбора. Ключевые слова: eol=c - знак начала комментария в конце строки (допускается задание только одного знака). skip=n - число пропускаемых при обработке строк в начале файла. delims=xxx - набор разделителей вместо используемых по умолчанию пробела и знака табуляции. tokens=x,y,m-n - номера подстрок из каждой строки, передаваемые в тело цикла "for" для каждой итерации. При использовании этого ключа выделяются дополнительные имена переменных. Формат m-n представляет собой диапазон подстрок с номерами от m по n. Если последний знак в строке tokens= является звездочкой, создается дополнительная переменная, значением которой будет весь оставшийся текст в строке после разбора последней подстроки. usebackq - применение новой семантики, при которой строка, заключенная в обратные кавычки, выполняется как команда, строка, заключенная в прямые одиночные кавычки, является строкой-литералом, а двойные кавычки могут использоваться для задания имен файлов в наборе. Поясняющий пример: FOR /F "eol=; tokens=2,3* delims=, " %i in (мойфайл.txt) do @echo %i %j %k разбирает файл myfile.txt, пропуская все строки, которые начинаются с символа точки с запятой, и передает вторую и третью подстроки из каждой строки в тело цикла "for", причем подстроки разделяются запятыми и/или пробелами. В теле цикла переменная %i используется для второй подстроки, %j - для третьей, а %k получает все оставшиеся подстроки после третьей. Имена файлов, содержащие пробелы, необходимо заключать в двойные кавычки. Чтобы использовать двойные кавычки, необходимо использовать параметр usebackq, иначе двойные кавычки будут восприняты как определение строки-литерала для разбора. Переменная %i явно объявлена в инструкции "for", а переменные %j и %k объявляются неявно с помощью ключа tokens=. Ключ tokens= позволяет извлечь из одной строки файла до 26 подстрок, при условии, что это не приведет к попытке объявить переменную после буквы "z" или "Z". Следует помнить, что имена переменных FOR являются однобуквенными, с учетом регистра, глобальными, поэтому одновременно не может быть активно более 52 переменных. Логику разбора команды FOR /F можно также использовать на явно заданной строке, заключив ее в одиночные кавычки и указав ее в качестве параметра в скобках. Она будет разобрана как одиночная строка из входного файла. Наконец, команда FOR /F позволяет разобрать выходные данные другой команды. Для этого следует использовать в качестве параметра в скобках строку в обратных одиночных кавычках. Эта строка передается для выполнения дочернему обработчику команд CMD.EXE, а вывод этой команды сохраняется в памяти и разбирается так, как если бы это был файл. Следующий пример, FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i, выведет перечень имен всех переменных среды в текущей среде. Операции подстановки ссылок на переменные команды FOR также расширены. Допускается применение следующих синтаксических конструкций: %~I - из переменной %I удаляются обрамляющие кавычки (") %~fI - переменная %I расширяется до полного имени файла %~dI - из переменной %I выделяется только имя диска %~pI - из переменной %I выделяется только путь к файлу %~nI - из переменной %I выделяется только имя файла %~xI - из переменной %I выделяется расширение имени файла %~sI - полученный путь содержит только короткие имена %~aI - переменная %I расширяется до атрибутов файла %~tI - переменная %I расширяется до даты /времени файла %~zI - переменная %I расширяется до размера файла %~$ПУТЬ:I - проводится поиск по каталогам, заданным в переменной среды ПУТЬ, и переменная %I заменяется на полное имя первого найденного файла. Если переменная ПУТЬ не определена или в результате поиска не найден ни один файл, то этот модификатор заменяется на пустую строку. При объединении нескольких операторов можно получить следующие результаты: ~dpI - переменная I раскрывается в имя диска и путь ~nxI - переменная I раскрывается в имя файла и его расширение ~fsI - переменная I раскрывается в полный путь с короткими именами ~dp$ПУТЬ:I - проводится поиск по каталогам, заданным в переменной среды ПУТЬ, и переменная I раскрывается в имя диска и путь к первому найденному файлу. ~ftzaI - переменная I раскрывается в строку, подобную выдаваемой командой DIR В приведенных выше примерах переменные I и ПУТЬ можно заменить на другие допустимые значения. Синтаксическая конструкция с символами ~ заканчивается допустимым именем переменной цикла FOR. Для имен переменных рекомендуется использовать заглавные буквы, например, I, что делает эту конструкцию более удобной для чтения и предотвращает ошибочное принятие их за модификаторы, которые не различают регистр. |
Большой текст убираем под [more][/more] | Всего записей: 2409 | Зарегистр. 12-10-2006 | Отправлено: 15:56 26-12-2017 | Исправлено: gyra, 00:42 27-12-2017 |
|