Как выполнить цикл определенное число раз в bat файле

В одном из материалов ранее, мы рассматривали зацикливание выполнения команд в 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

Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *