Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

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]

Всего записей: 2388 | Зарегистр. 12-10-2006 | Отправлено: 15:56 26-12-2017 | Исправлено: gyra, 00:42 27-12-2017
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru