Команда FOR
Выполняет заданную команду для каждого файла или набора файлов. Эту команду можно использовать в командных файлах или в ответ на командную подсказку.
В первом случае используется синтаксис:
FOR %%переменная IN (множество) DO команда [параметры]
а во втором случае:
FOR %переменная IN (множество) DO команда [параметры]
Параметр %%переменная или %переменная представляет подставляемую переменную. Команду FOR заменяет эту переменную текстом каждой строки в заданном множестве, пока команда после ключевого слова DO не обработает все файлы. "Множество" задает один или более файлов или текстовых строк, которые вы хотите обработать с помощью заданной команды. Скобки обязательны. "Команда" задает команду, выполняемую для каждого включенного в множество файла. "Параметры" задают параметры данной команды (если она их использует). IN и DO - это не параметры, а обязательные ключевые слова команды FOR.
Чтобы избежать путаницы с параметрами командного файла %0 %9, для переменных следует использовать любые числа кроме 0 - 9. В простом командном файле вам хватит одного символа, например, %%F. Вложенность команд FOR на одной командной строке не допускается.
Параметр "множество" представляет одну или несколько групп файлов. В нем можно использовать трафаретные символы (* и ?). Допустимы следующие множества (*.doc), (*.doc *.dat *.rpt), (olg*.doc olgj*.rpt svt*.doc svt*.rpt), (ol??1991.* kr??1991.*).
При использовании команды FOR первое значение в множестве заменяет %%переменную (или %переменную), и MS-DOS выполняет для обработки этого значения заданную команду. Этот процесс продолжается, пока MS-DOS не обработает все файлы (или группы файлов) в множестве.
Предположим, вы хотите использовать команду PRINT для распечатки содержимого всех файлов в текущем каталоге с расширением .DAT и .RPT. Для этого наберите команду:
for %f in (*.dat *.rpt) do print %f
Каждый файл в указанными расширениями подставляется в качестве %F, пока не будет распечатано содержимое всех файлов. В этой команде можно использовать символы конвейеризации и перенаправления. Например, предыдущую команду можно модифицировать следующим образом:
for %f in (*.dat *.rpt) do type %f > prn: