This is basically what I want in a batch file. I want to be able to re-run «Do Stuff» whenever I press any key to go past the «Pause».
while(true){
Do Stuff
Pause
}
Looks like there are only for
loops available and no while
loops in batch. How do I create an infinite loop then?
asked Mar 30, 2011 at 14:10
4
How about using good(?) old goto
?
:loop
echo Ooops
goto loop
See also this for a more useful example.
answered Mar 30, 2011 at 14:14
thkalathkala
82.7k23 gold badges155 silver badges199 bronze badges
7
Unlimited loop in one-line command for use in cmd
windows:
FOR /L %N IN () DO @echo Oops
answered Dec 30, 2017 at 13:38
Nabi K.A.Z.Nabi K.A.Z.
9,2356 gold badges55 silver badges75 bronze badges
2
A really infinite loop, counting from 1 to 10 with increment of 0.
You need infinite or more increments to reach the 10.
for /L %%n in (1,0,10) do (
echo do stuff
rem ** can't be leaved with a goto (hangs)
rem ** can't be stopped with exit /b (hangs)
rem ** can be stopped with exit
rem ** can be stopped with a syntax error
call :stop
)
:stop
call :__stop 2>nul
:__stop
() creates a syntax error, quits the batch
This could be useful if you need a really infinite loop, as it is much faster than a goto :loop
version because a for-loop is cached completely once at startup.
anonymoose
7992 gold badges10 silver badges25 bronze badges
answered Mar 30, 2011 at 15:02
jebjeb
77k17 gold badges168 silver badges222 bronze badges
2
read help GOTO
and try
:again
do it
goto again
answered Mar 30, 2011 at 14:29
PA.PA.
28k9 gold badges71 silver badges94 bronze badges
0
Another better way of doing it:
:LOOP
timeout /T 1 /NOBREAK
::pause or sleep x seconds also valid
call myLabel
if not ErrorLevel 1 goto :LOOP
This way you can take care of errors too
answered Apr 13, 2017 at 14:26
Julito SanchisJulito Sanchis
1,3362 gold badges9 silver badges9 bronze badges
Here is an example of using the loop:
echo off
cls
:begin
set /P M=Input text to encode md5, press ENTER to exit:
if %M%==%M1% goto end
echo.|set /p ="%M%" | openssl md5
set M1=%M%
Goto begin
This is the simple batch i use when i need to encrypt any message into md5 hash on Windows(openssl required), and the program would loyally repeat itself except given Ctrl+C or empty input.
answered Jan 13, 2012 at 5:54
user1147015user1147015
1,6291 gold badge10 silver badges2 bronze badges
Windows
- 25.01.2020
- 17 809
- 4
- 05.02.2021
- 34
- 34
- 0
- Содержание статьи
- Описание
- Инструкция
- Комментарии к статье ( 4 шт )
- Добавить комментарий
Описание
Иногда необходимо создать bat-файл, который будет запускать некую команду через определённый интервал времени. Для решения этой задачи можно воспользоваться Планировщиком и часто запускать bat-файл из него, а можно создать в bat-файле цикл с паузой.
Инструкция
Цикл организуется следующим образом:
:loop
... <- здесь команда для создания паузы
... <- здесь другие команды, которые необходимо выполнять в цикле
goto loop
Паузу можно создать несколькими способами. В операционных системах Windows Vista, и более новых, для этого существует команда timeout:
timeout /t 5
где параметр /t
— это время ожидания в секундах.
Другая команда, которую можно использовать для данной цели (например, в Windows XP, в которой еще не присутствовала команда timeout), это команда ping:
ping -n 1 -w 100000 192.168.254.254 >nul
-n 1
— выполнить один запрос-w 100000
— ждать ответа 100 секунд (значение указывается в миллисекундах), меняете это значение на то, которое нужно вам192.168.254.254
— IP адрес, который заведомо не существует в локальной сети, т.е. никогда не ответит на ping, поэтому команда будет выполняться до достижения таймаута>nul
— перенаправление всего вывода команды ping в никуда.
Кроме этого, существует утилита sleep, которая выполняет те же функции, что и команда timeout. Данная утилита не входит в стандартный состав ни одной операционной системы Windows, и устанавливается из дополнительного пакета программного обеспечения «Windows Server 2003 Resource Kit Tools» на любую операционную систему Windows. Скачать данный пакет можно с сайта Microsoft, или нашего зеркала на Яндекс.Диск.
Использование программы sleep очень простое:
sleep 5
где цифра 5 обозначает время ожидания в 5 секунд.
This is basically what I want in a batch file. I want to be able to re-run «Do Stuff» whenever I press any key to go past the «Pause».
while(true){
Do Stuff
Pause
}
Looks like there are only for
loops available and no while
loops in batch. How do I create an infinite loop then?
asked Mar 30, 2011 at 14:10
4
How about using good(?) old goto
?
:loop
echo Ooops
goto loop
See also this for a more useful example.
answered Mar 30, 2011 at 14:14
thkalathkala
82.7k23 gold badges155 silver badges199 bronze badges
7
Unlimited loop in one-line command for use in cmd
windows:
FOR /L %N IN () DO @echo Oops
answered Dec 30, 2017 at 13:38
Nabi K.A.Z.Nabi K.A.Z.
9,2356 gold badges55 silver badges75 bronze badges
2
A really infinite loop, counting from 1 to 10 with increment of 0.
You need infinite or more increments to reach the 10.
for /L %%n in (1,0,10) do (
echo do stuff
rem ** can't be leaved with a goto (hangs)
rem ** can't be stopped with exit /b (hangs)
rem ** can be stopped with exit
rem ** can be stopped with a syntax error
call :stop
)
:stop
call :__stop 2>nul
:__stop
() creates a syntax error, quits the batch
This could be useful if you need a really infinite loop, as it is much faster than a goto :loop
version because a for-loop is cached completely once at startup.
anonymoose
7992 gold badges10 silver badges25 bronze badges
answered Mar 30, 2011 at 15:02
jebjeb
77k17 gold badges168 silver badges222 bronze badges
2
read help GOTO
and try
:again
do it
goto again
answered Mar 30, 2011 at 14:29
PA.PA.
28k9 gold badges71 silver badges94 bronze badges
0
Another better way of doing it:
:LOOP
timeout /T 1 /NOBREAK
::pause or sleep x seconds also valid
call myLabel
if not ErrorLevel 1 goto :LOOP
This way you can take care of errors too
answered Apr 13, 2017 at 14:26
Julito SanchisJulito Sanchis
1,3362 gold badges9 silver badges9 bronze badges
Here is an example of using the loop:
echo off
cls
:begin
set /P M=Input text to encode md5, press ENTER to exit:
if %M%==%M1% goto end
echo.|set /p ="%M%" | openssl md5
set M1=%M%
Goto begin
This is the simple batch i use when i need to encrypt any message into md5 hash on Windows(openssl required), and the program would loyally repeat itself except given Ctrl+C or empty input.
answered Jan 13, 2012 at 5:54
user1147015user1147015
1,6291 gold badge10 silver badges2 bronze badges
This is basically what I want in a batch file. I want to be able to re-run «Do Stuff» whenever I press any key to go past the «Pause».
while(true){
Do Stuff
Pause
}
Looks like there are only for
loops available and no while
loops in batch. How do I create an infinite loop then?
asked Mar 30, 2011 at 14:10
4
How about using good(?) old goto
?
:loop
echo Ooops
goto loop
See also this for a more useful example.
answered Mar 30, 2011 at 14:14
thkalathkala
82.7k23 gold badges155 silver badges199 bronze badges
7
Unlimited loop in one-line command for use in cmd
windows:
FOR /L %N IN () DO @echo Oops
answered Dec 30, 2017 at 13:38
Nabi K.A.Z.Nabi K.A.Z.
9,2356 gold badges55 silver badges75 bronze badges
2
A really infinite loop, counting from 1 to 10 with increment of 0.
You need infinite or more increments to reach the 10.
for /L %%n in (1,0,10) do (
echo do stuff
rem ** can't be leaved with a goto (hangs)
rem ** can't be stopped with exit /b (hangs)
rem ** can be stopped with exit
rem ** can be stopped with a syntax error
call :stop
)
:stop
call :__stop 2>nul
:__stop
() creates a syntax error, quits the batch
This could be useful if you need a really infinite loop, as it is much faster than a goto :loop
version because a for-loop is cached completely once at startup.
anonymoose
7992 gold badges10 silver badges25 bronze badges
answered Mar 30, 2011 at 15:02
jebjeb
77k17 gold badges168 silver badges222 bronze badges
2
read help GOTO
and try
:again
do it
goto again
answered Mar 30, 2011 at 14:29
PA.PA.
28k9 gold badges71 silver badges94 bronze badges
0
Another better way of doing it:
:LOOP
timeout /T 1 /NOBREAK
::pause or sleep x seconds also valid
call myLabel
if not ErrorLevel 1 goto :LOOP
This way you can take care of errors too
answered Apr 13, 2017 at 14:26
Julito SanchisJulito Sanchis
1,3362 gold badges9 silver badges9 bronze badges
Here is an example of using the loop:
echo off
cls
:begin
set /P M=Input text to encode md5, press ENTER to exit:
if %M%==%M1% goto end
echo.|set /p ="%M%" | openssl md5
set M1=%M%
Goto begin
This is the simple batch i use when i need to encrypt any message into md5 hash on Windows(openssl required), and the program would loyally repeat itself except given Ctrl+C or empty input.
answered Jan 13, 2012 at 5:54
user1147015user1147015
1,6291 gold badge10 silver badges2 bronze badges
Как создать бесконечный цикл в командном файле Windows?
Это в основном то, что я хочу в пакетном файле. Я хочу иметь возможность повторно запускать «Do Stuff» всякий раз, когда я нажимаю любую клавишу, чтобы пройти «Pause».
Похоже, в пакете доступны только for циклы, а в пакете нет while циклов. Как мне тогда создать бесконечный цикл?
6 ответов
Как насчет использования старого доброго (?) goto ?
См. Также это более полезный пример.
Вот пример использования цикла:
Это простой пакет, который я использую, когда мне нужно зашифровать любое сообщение в хэш md5 в Windows (требуется openssl), и программа будет лояльно повторять себя, за исключением Ctrl + C или пустого ввода.
Еще один лучший способ сделать это:
Таким образом, вы тоже можете позаботиться об ошибках
Прочитать help GOTO
Действительно бесконечный цикл, считая от 1 до 10 с шагом 0.
Вам нужно бесконечное или большее количество шагов, чтобы достичь 10.
Это может быть полезно, если вам нужен действительно бесконечный цикл, поскольку он намного быстрее, чем версия goto :loop , потому что цикл for полностью кэшируется один раз при запуске.
Неограниченный цикл в однострочной команде для использования в окнах cmd :
Как сделать бесконечный цикл в cmd?
Нужно бесконечно повторять некую команду. как это реализовать в командной строке?
Если речь идёт непосредственно о командной строке
то стоит воспользоваться циклом for :
Если же речь о bat-файле
в предыдущей команде можно удвоить знак процента:
но лучше воспользоваться меткой и goto :
Всё ещё ищете ответ? Посмотрите другие вопросы с метками windows cmd bat faq или задайте свой вопрос.
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.13.42356
Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Windows CMD/Циклы/for
for — команда организовывающая цикл в командной строке (CMD) Microsoft Windows. Аналог цикла for в Си-подобных языках программирования.
Содержание
Преамбула
Цикл for производит выполнение указанной команды для каждого файла набора.
Синтаксис
Переменные
Особенности переменных
- Имена переменных учитывают регистр букв (%i отличается от %I).
- Переменные должны быть односимвольными (по крайней мере для числового цикла).
Расширенная обработка команд
Если включена расширенная обработка команд, поддерживаются следующие дополнительные формы команды FOR:
Если набор содержит подстановочные знаки, команда выполняется для всех подходящих имен каталогов, а не имен файлов.
Числовой цикл
Синтаксис числового цикла:
Пример числового цикла
Это числовой цикл от 1 до 10 с шагом приращения 1. На каждой итерации цикла с помощью команды echo выводится переменная шага (счётчика) цикла.
Бесконечный цикл
Бесконечный цикл можно реализовать на базе числового без задания настроек счётчика, тогда цикл будет бесконечным.
Примеры бесконечного цикла
Пример бесконечного цикла 1:
Пример бесконечного цикла 2:
Перебор всех файлов в директории
Отображать только имена файлов (не полный путь) с их расширениями в текущем каталоге:
for
— команда, организовывающая цикл в командной строке (CMD) Windows. Аналог цикла for
в C-подобн. ЯП.
Содержание
- 1 Преамбула
- 2 Синтаксис
- 3 Переменные
- 3.1 Особенности переменных
- 4 Расширенная обработка команд
- 5 Числовой цикл
- 5.1 Пример числового цикла
- 6 Бесконечный цикл
- 6.1 Примеры бесконечного цикла
- 7 Перебор всех файлов в директории
- 8 Документация
- 9 Также
- 10 Ссылки
Преамбула
Цикл for
производит выполнение указанной команды для каждого файла набора.
Синтаксис
FOR %переменная IN (набор) DO команда [параметры]
Где:
-
%переменная
– Однобуквенный подставляемый параметр. - (набор) – Определяет набор, состоящий из одного или нескольких файлов. Допускается использ. подстановочных знаков.
- команда – Команда, которую следует выполнить для каждого файла.
- параметры – Параметры и ключи для указанной команды.
Переменные
В пакетных файлах для команды for
используется запись %%переменная
, вместо %переменная
, т.е. в файлах переменные начинаются с 2-ух знаков
%
, а в командной строке – с одного.
Особенности переменных
- Имена переменных учитывают регистр букв — напр.,
%i
отличается от%I
. - Переменные должны быть односимвольными, по крайней мере для числового цикла.
Расширенная обработка команд
Если включена расширенная обработка команд, поддерживаются след. доп. формы команды for
:
FOR /D %переменная IN (набор) DO команда [параметры]
Если набор содержит подстановочные знаки, команда выполняется для всех подходящих имен каталогов, а не имён файлов.
Числовой цикл
Для организации самого распространённого числового цикла, т.е., цикла, перебирающего числа, для команды for
нужно использ. параметр /L
.
Синтаксис числового цикла:
FOR /L %%parameter IN (start,step,end) DO command
Пример числового цикла
FOR /L %p IN (1,1,10) DO echo %p
Это числовой цикл от 1 до 10 с шагом приращения 1. На каждой итерации цикла с помощью команды echo
выводится переменная шага цикла — счётчика.
Бесконечный цикл
Бесконечный цикл можно реализовать на базе числового без задания настроек счётчика, тогда цикл будет бесконечным.
Примеры бесконечного цикла
Пример бесконечного цикла 1:
for /l %x in (0,0,0) do echo «бесконечный цикл»
Пример бесконечного цикла 2:
for /l %x in (0,0,0) do curl http://domain.local-domain-zone/path/script.php
Перебор всех файлов в директории
for %i in (*) do echo %i
рекурсивно:
for /r %i in (*) do echo %i
Отображать только имена файлов (не полный путь) с их расширениями в текущем каталоге:
for %i in (*) do ( echo %~nxi )
рекурсивно:
for /r %i in (*) do ( echo %~nxi )
files in current dir:
for %f in (.*) do @echo %f
subdirs in current dir:
for /D %s in (.*) do @echo %s
files in current and all subdirs:
for /R %f in (.*) do @echo %f
subdirs in current and all subdirs:
for /R /D %s in (.*) do @echo %s
Документация
Если набор содержит подстановочные знаки, команда выполняется для всех подходящих имен каталогов, а не имен файлов.
FOR /R [[диск:]путь] %переменная IN (набор) DO команда [параметры]
Выполнение команды для каталога [диск:]путь, а также для всех подкаталогов этого пути. Если после ключа /R не указано имя каталога, используется текущий каталог. Если набор — это одиночный символ точки (.), команда просто перечисляет дерево каталогов.
FOR /L %переменная IN (начало,шаг,конец) DO команда [параметры]
Набор раскрывается в последовательность чисел с заданными началом, концом и шагом приращения. Так, набор (1,1,5) раскрывается в (1 2 3 4 5), а набор (5,-1,1) — в (5 4 3 2 1)
FOR /F ["ключи"] %переменная IN (набор-файлов) DO команда [параметры] FOR /F ["ключи"] %переменная IN ("строка") DO команда [параметры] FOR /F ["ключи"] %переменная IN ('команда') DO команда [параметры]
или, если использован параметр usebackq:
FOR /F ["ключи"] %переменная IN (набор-файлов) DO команда [параметры] FOR /F ["ключи"] %переменная IN ('строка') DO команда [параметры] FOR /F ["ключи"] %переменная IN (`команда`) DO команда [параметры]
Набор файлов содержит имена одного или нескольких файлов, которые по очереди открываются, читаются и обрабатываются. Обработка состоит в чтении файла, разбивке его на отдельные строки текста и разборе каждой строки в ноль или более подстрок. Затем вызывается тело цикла for
, при выполнении которого каждая найденная подстрока используется в качестве значения переменной. По умолчанию ключ /F выделяет из каждой строки каждого файла первую отделенную пробелами подстроку. Пустые строки в файле пропускаются. Необязательный параметр «ключи» служит для переопределения правил разбора по умолчанию. Он представляет собой заключенную в кавычки строку, содержащую одно или несколько ключевых слов для определения параметров разбора. Ключевые слова:
- eol=c — знак начала комментария в конце строки (допускается задание только одного знака).
- skip=n — число пропускаемых при обработке строк в начале файла.
- delims=xxx — набор разделителей вместо используемых по умолчанию пробела и знака табуляции.
- tokens=x,y,m-n — номера подстрок из каждой строки, передаваемые в тело цикла
for
для каждой итерации. При использовании этого ключа выделяются дополнительные имена переменных. Формат m-n представляет собой диапазон подстрок с номерами от m по n. Если последний знак в строке tokens= является звездочкой, создается дополнительная переменная, значением которой будет весь оставшийся текст в строке после разбора последней подстроки. - usebackq — применение новой семантики, при которой строка, заключенная в обратные кавычки, выполняется как команда, строка, заключенная в прямые одиночные кавычки, является строкой-литералом, а двойные кавычки могут использоваться для задания имен файлов в наборе.
Поясняющий пример:
FOR /F "eol=; tokens=2,3* delims=, " %i in (мойфайл.txt) do @echo %i %j %k
разбирает файл myfile.txt, пропуская все строки, которые начинаются с символа точки с запятой, и передает вторую и третью подстроки из каждой строки в тело цикла for
, причем подстроки разделяются запятыми и/или пробелами. В теле цикла переменная %i используется для второй подстроки, %j — для третьей, а %k получает все оставшиеся подстроки после третьей. Имена файлов, содержащие пробелы, необходимо заключать в двойные кавычки. Чтобы использовать двойные кавычки, необходимо использовать параметр usebackq, иначе двойные кавычки будут восприняты как определение строки-литерала для разбора.
Переменная %i явно объявлена в инструкции for
, а переменные %j и %k объявляются неявно с помощью ключа tokens=. Ключ tokens= позволяет извлечь из одной строки файла до 26 подстрок, при условии, что это не приведет к попытке объявить переменную после буквы «z» или «Z». Следует помнить, что имена переменных for
явл. однобуквенными, с учетом регистра, глобальными, поэтому одновременно не может быть активно более 52 переменных.
Логику разбора команды FOR /F можно также использовать на явно заданной строке, заключив ее в одиночные кавычки и указав ее в качестве параметра в скобках. Она будет разобрана как одиночная строка из входного файла.
Наконец, команда FOR /F позволяет разобрать выходные данные другой команды. Для этого следует использовать в качестве параметра в скобках строку в обратных одиночных кавычках. Эта строка передается для выполнения дочернему обработчику команд CMD.EXE, а вывод этой команды сохраняется в памяти и разбирается так, как если бы это был файл. Следующий пример,
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i,
выведет перечень имен всех переменных среды в текущей среде.
Операции подстановки ссылок на переменные команды for
также расширены. Допускается применение след. синтаксич. конструкций:
- %~I — из переменной %I удаляются обрамляющие кавычки («)
- %~fI — переменная %I расширяется до полного имени файла
- %~dI — из переменной %I выделяется только имя диска
- %~pI — из переменной %I выделяется только путь к файлу
- %~nI — из переменной %I выделяется только имя файла
- %~xI — из переменной %I выделяется расширение имени файла
- %~sI — полученный путь содержит только короткие имена
- %~aI — переменная %I расширяется до атрибутов файла
- %~tI — переменная %I расширяется до даты /времени файла
- %~zI — переменная %I расширяется до размера файла
- %~$ПУТЬ:I — проводится поиск по каталогам, заданным в переменной среды ПУТЬ, и переменная %I заменяется на полное имя первого найденного файла. Если переменная ПУТЬ не определена или в результате поиска не найден ни один файл, то этот модификатор заменяется на пустую строку.
При объединении нескольких операторов можно получить следующие результаты:
- ~dpI — переменная I раскрывается в имя диска и путь
- ~nxI — переменная I раскрывается в имя файла и его расширение
- ~fsI — переменная I раскрывается в полный путь с короткими именами
- ~dp$ПУТЬ:I — проводится поиск по каталогам, заданным в переменной среды ПУТЬ, и переменная I раскрывается в имя диска и путь к первому найденному файлу.
- ~ftzaI — переменная I раскрывается в строку, подобную выдаваемой командой DIR
В приведенных выше примерах переменные I и ПУТЬ можно заменить на другие допустимые значения. Синтаксическая конструкция с символами ~ заканчивается допустимым именем переменной цикла for
.
Для имен переменных рекомендуется использовать заглавные буквы, например, I, что делает эту конструкцию более удобной для чтения и предотвращает ошибочное принятие их за модификаторы, которые не различают регистр.
Также
FOR Conditionally perform a command several times. syntax-FOR-Files FOR %%parameter IN (set) DO command syntax-FOR-Files-Rooted at Path FOR /R [[drive:]path] %%parameter IN (set) DO command syntax-FOR-Folders FOR /D %%parameter IN (folder_set) DO command syntax-FOR-List of numbers FOR /L %%parameter IN (start,step,end) DO command syntax-FOR-File contents FOR /F ["options"] %%parameter IN (filenameset) DO command FOR /F ["options"] %%parameter IN ("Text string to process") DO command syntax-FOR-Command Results FOR /F ["options"] %%parameter IN ('command to process') DO command The operation of the FOR command can be summarised as... Take a set of data Make a FOR Parameter %%G equal to some part of that data Perform a command (optionally using the parameter as part of the command). Repeat for each item of data If you are using the FOR command at the command line rather than in a batch program, use just one percent sign: %G instead of %%G. FOR Parameters The first parameter has to be defined using a single character, for example the letter G. FOR %%G IN ... In each iteration of a FOR loop, the IN ( ....) clause is evaluated and %%G set to a different value If this clause results in a single value then %%G is set equal to that value and the command is performed. If the clause results in a multiple values then extra parameters are implicitly defined to hold each. These are automatically assigned in alphabetical order %%H %%I %%J ...(implicit parameter definition) If the parameter refers to a file, then enhanced variable reference can be used to extract the filename/path/date/size. You can of course pick any letter of the alphabet other than %%G. %%G is a good choice because it does not conflict with any of the pathname format letters (a, d, f, n, p, s, t, x) and provides the longest run of non-conflicting letters for use as implicit parameters. G > H > I > J > K > L > M Format letters are case sensitive, so using a capital letter is also a good way to avoid conflicts %%A rather than %%a. Examples FOR /F "tokens=1-5" %%A IN ("This is a short sentence") DO @echo %%A %%B %%D will result in the output: This is short Create a set of 26 folders, one for each letter of the alphabet: FOR %%G IN (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) DO (md C:demo%%G) Running multiple commands in a FOR loop Within a FOR loop, variables are expanded at the start of the loop and don’t update until the entire DO section has completed. The following example counts the files in the current folder, but %count% always returns 1: @echo off SET count=1 FOR /f "tokens=*" %%G IN ('dir /b') DO ( echo %count%:%%G set /a count+=1 ) To update variables within each iteration of the loop we must either use EnableDelayedExpansion or else use the CALL :subroutine mechanism as shown below: @echo off SET count=1 FOR /f "tokens=*" %%G IN ('dir /b') DO (call :subroutine "%%G") GOTO :eof :subroutine echo %count%:%1 set /a count+=1 GOTO :eof Nested FOR commands FOR commands can be nested FOR %%G... DO (for %%U... do ...) when nesting commands choose a different letter for each part. you can then refer to both parameters in the final DO command. For an example of exiting the inner loop of two nested FOR loops, see the EXIT page. If Command Extensions are disabled, the FOR command will only support the basic syntax with no enhanced variables: FOR %%parameter IN (set) DO command [command-parameters] FOR is an internal command. “Those who cannot remember the past are condemned to repeat it” - George Santayana Related: FOR - Loop through a set of files in one folder FOR /R - Loop through files (recurse subfolders) FOR /D - Loop through several folders FOR /L - Loop through a range of numbers FOR /F - Loop through items in a text file FOR /F - Loop through the output of a command Parameters/arguments %~ options FORFILES - Batch process multiple files GOTO - Direct a batch program to jump to a labelled line IF - Conditionally perform a command Powershell: ForEach-Object - Loop for each object in the pipeline Equivalent bash command (Linux): for var in [list]; do - Expand list, and execute commands
Ссылки
Полезн. ссылки по теме for
:
- http://www.cyberforum.ru/cmd-bat/thread877664.html
Шаблон:Windows CMD