Предназначена для организации цикла в командном файле.
FOR %%символ IN (список) DO process
Данная команда служит для многократного выполнения process с различными значениями параметра цикла (локальной переменной).
Параметр цикла представляется единственным символом, отличным от цифры и %. Обычно параметр цикла обозначается буквой.
Список — это последовательность цепочек символов, разделенных пробелами или запятыми. В качестве элемента списка (цепочки символов) можно задать и спецификацию шаблона файла, но тогда этот элемент должен быть единственным (остальные элементы игнорируются). Он обозначает список файлов, с ним сопоставимых.
В аргументе process, задающем выполнение команды или программы, как правило, фигурирует параметр цикла.
Семантика команды FOR состоит в том, что указанный process многократно выполняется с каждым значением параметра цикла из заданного списка, причем в том порядке, в котором эти значения перечислены.
Если требуется поместить в тело цикла (после DO) несколько команд, то следует записать их в отдельный командный файл и использовать для его вызова команду CALL.
Замечания:
1. Команда FOR не обладает необходимой полнотой т.к. не позволяет организовать все возможные циклы. Поэтому в ряде случаев необходимо пользоваться комбинациями команд IF и GOTO. Вместе с тем FOR позволяет решить многие задачи наиболее простым способом;
2. Команды FOR не могут быть вложенными;
3. Спецификация командного файла в качестве process недопустима;
4. Параметр цикла начинается с двух символов %, чтобы КП DOS было легче отличить его от параметра командного файла и значения глобальной переменной;
5. Команда FOR может быть использована не только в командном файле, но и непосредственно введена с клавиатуры. В последнем случае параметр цикла должен начинаться с одного символа %.
Примеры:
1) FOR %%D IN (А, В, С) DO DIR %%D:*.* — выдать на экран содержимое текущих каталогов дисков А, В и С;
2) FOR %%F IN (*.ТХТ) DO TYPE %%F - отобразить содержимое всех ТХТ-файлов, находящихся в рабочем каталоге (единственной командой TYPE этого достичь нельзя, так как она не допускает шаблонов);
3) FOR %%F IN (*.ASM) DO MASM %%F — провести ассемблирование всех ASM-файлов из рабочего каталога;
4) FOR %%F IN (*.PAS) DO CALL C %%F - выполнить командный файл C.BAT для каждого PAS-файла из рабочего каталога в качестве аргумента;
5) FOR %F IN (A:*.*) DO DEL C:%F — удалить из текущего каталога диска С все файлы, содержащиеся в текущем каталоге диска А. Эта команда (так как проставлен единственный символ %) может быть введена только в командной строке,