Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Осуществляет многократный вызов команды (или блока команд).
Обратите внимание, что внутри цикла имя переменной должно предваряться символами %%, в то время как в остальных конструкциях языка имя переменной должно обрамляться символами % с двух сторон.
Формат вызова для перебора всех элементов файловой системы, соответствующих указанному шаблону:
FOR [ /D | /R [<путь>] ] %%<имя переменной> IN (<шаблон имени файла>) DO <команда или блок>
/D – перебор имен каталогов вместо имен файлов
/R – перебор всех файлов (или каталогов, если в качестве шаблона указан символ.) начиная с каталога по указанному пути (или, если путь не указан, начиная с текущего каталога) и во всех его подкаталогах
Пример использования:
FOR %%FILE IN (*.doc) DO @ECHO %%FILE
Выведет на экран перечень всех файлов с расширением.DOC
Формат вызова для перебора значений с начального по конечное, с указанным шагом:
FOR /L %%<имя переменной> IN (начало,шаг,конец) DO <команда или блок>
Пример использования:
FOR /L %%I IN (1,2,10) DO @ECHO %%I
Выведет на экран числа 1,3,5,7,9
Формат вызова для обработки содержимого всех файлов в <наборе>, либо значения, содержащегося в <строке>, либо набора строк, возвращаемого после выполнения <команды>.
Обработка осуществляется в соответствии с правилами, определяемыми ключевыми словами, разделенными пробелами, в строке <ключи>.
FOR /F ["ключи"] %переменная IN (набор-файлов) DO команда [параметры]
FOR /F ["ключи"] %переменная IN ("строка") DO команда [параметры]
FOR /F ["ключи"] %переменная IN ('команда') DO команда [параметры]
Ключи могут быть следующими:
Прекращать обработку строки при появлении в ней указанного символа:
eol=<символ окончания строки>
Не обрабатывать первые n строк:
skip=<число пропускаемых строк в начале обработки каждого блока данных
Указать символы, которые обозначают границы колонок данных:
delims=<набор символов, обозначающих разделители колонок данных (по умолчанию разделителями являются символ пробела и табуляции)
Указать колонки данных, которые следует передавать в тело цикла:
tokens=порядковые номера колонок данных для каждой строки, которые будут переданы в тело цикла при каждой итерации, или символ * (звездочка).
В случае использования символа * в тело цикла будут передаваться все символы вплоть до конца строки.
Порядковые номера могут быть указаны диапазонами типа m-n (то есть от колонки с номером m до колонки с номером n).
Данные первой колонки передаются в переменную, указанную при описании цикла, данные последующих колонок передаются в автоматически создаваемые переменные, по следующему принципу: например, переменная цикла - %A, тогда вторая колонка попадет в переменную %B, третья - в %C и т.д.
Пример использования №1:
FOR /F "skip=2 eol=; tokens=2,4-5,* delims=, " %%I IN (*.txt) DO @ECHO %%I %%J %%K %%L
Будут обработаны все строки, за исключением двух первых, из каждого файла с расширением txt.
Из обрабатываемых строк будут выделены колонки данных, разделяемые символами пробел и запятая.
В тело цикла будут переданы колонки № 2, 4, 5 и все последующие. Из значения для каждой строки будут помещены в переменные I, J, K, L и выведены на экран командой ECHO.
Пример использования №2:
FOR /F " tokens=1,2 delims=," %%I IN ("Putin, Vladimir, Vladimirovich") DO @ECHO %%J %%I
Будет выведено: Vladimir Putin
Пример использования №3:
@ECHO OFF
CHCP 1251
Дата публикования: 2015-10-09; Прочитано: 130 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!