Forиспользуется для повторения определенных действий с каждым членом списка. Имеет формат for %%аргумент in (список) do команда. Аргументом может быть любая буква от A до Z. Список представляет собой последовательность строк, разделенных пробелами или запятыми. Подстановочные знаки также могут использоваться.
Например:
for %%d in (A, C, D) do DIR %%d – последовательно выводит на
экран директории дисков А, С и D;
for %%f in (*.TXT *.BAT *.DOC) do TYPE %%f – печатает
содержимое всех .txt-, .bat- и .doc-файлов в текущей директории;
for %%P in (%PATH%) do if exist %%P\*.BAT COPY %%P\*.BAT C:\ВАТ – копирует все пакетные файлы, которые существуют во всех каталогах маршрута поиска в папку С:\ВАТ.
Двоеточие (:) перед словом образует из него ссылку, которая позволяет пропускать часть программного кода или возвращаться назад. Используется с командами Call и Goto, указывая, с какого места следует продолжать выполнение bat-файла, например, при выполнении определенного условия: goto label :label
Переменные:
%%a обозначает каждый файл в папке;
%CD% – текущая директория;
%DATE% – системная дата, формат которой зависит от локализации;
%TIME% – системное время в виде ЧЧ:ММ:СС.мм.;
%RANDOM% – сгенерированное псевдослучайное число в диапазоне от 0 до 32767;
%ERRORLEVEL% – код завершения, возвращаемый последней выполненной командой или bat-скриптом.
Извлечь часть строки, которая содержится в переменной, при известном ее положении и длине можно так:
%[переменная]:~[начало],[длина]%. Например, показать дату в формате ДД/ММ/ГГГГ как ГГГГ-ММ-ДД можно так: echo %DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%.
(". \") – корневая папка. При работе с консолью перед изменением имени файла, его удалением и т. д. необходимо направить действие команды в конкретный каталог. При использовании пакетного файла достаточно запустить его в любом нужном каталоге.