Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Оператор цикла



Осуществляет многократный вызов команды (или блока команд).

Обратите внимание, что внутри цикла имя переменной должно предваряться символами %%, в то время как в остальных конструкциях языка имя переменной должно обрамляться символами % с двух сторон.

Формат вызова для перебора всех элементов файловой системы, соответствующих указанному шаблону:

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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...