В одном из материалов ранее, мы рассматривали зацикливание выполнения команд в bat скрипте. Однако, что делать, если вам нужно выполнить цикл команд только определенное количество раз? Это достигается с помощью использования дополнительной переменной, которая с каждым проходом цикла будет увеличивать свое значение на единицу, и в случае превышения нужного значения произойдет остановка цикла.
В примерах ниже, мы будем повторять цикл 8 раз, после чего произойдет завершение bat скрипта. В процессе выполнения любого из скриптов ниже, будет поочередно запущено 8 раз приложение Блокнот (Notepad).
Способ 1 — использование команды FOR
Самым правильным способом будет использованием команды для цикличной обработки — FOR. С помощью ключа /L можно задать условия в виде начального значения, шага увеличения и значение, когда выполнение команды будет завершено.
for /l %%x in (1, 1, 8) do ( notepad.exe ) pause exit
Способ 2 — использование переменной
Еще один способ — это установить значение переменной (в нашем случае — COUNTER) равное единице, после чего увеличивать текущее значение этой переменной на единицу. Так же, следует поставить условие, что когда значение переменной достигнет 9, то следует перейти к метке end, которая в нашем случае содержит команду завершения работы. Выглядеть все это будет следующим образом:
set COUNTER=1 goto loop :loop if %COUNTER%==9 goto end set /A COUNTER=COUNTER+1 notepad.exe goto loop :end pause exit
Способ 3 — использование переменной
Другой вариант предыдущего скрипта, который содержит ручную смену значения переменной на нужное значение после каждого выполнения цикла.
set COUNTER=1 goto loop :loop if %COUNTER%==9 goto end if %COUNTER%==8 set COUNTER=9 if %COUNTER%==7 set COUNTER=8 if %COUNTER%==6 set COUNTER=7 if %COUNTER%==5 set COUNTER=6 if %COUNTER%==4 set COUNTER=5 if %COUNTER%==3 set COUNTER=4 if %COUNTER%==2 set COUNTER=3 if %COUNTER%==1 set COUNTER=2 notepad.exe goto loop :end pause exit

Добавить комментарий