it-swarm-ru.tech

Для подсчета циклов от 1 до n в скрипте Windows Bat

Мне нужно запустить команду Windows n раз в файле сценария bat. Я знаю, как сделать это на разных языках программирования, но не могу сделать это прямо в командной строке Windows :

Я бы ожидал что-то вроде

for(int i = 0; i < 100; i++) {
   // do something
}

или даже это (хотя и не совсем серьезно)

1.upto(100, {
   // do something
}) 

Спасибо!

--- ([~ # ~] редактировать [~ # ~]

Я могу написать программу на Java, Perl, C или любой другой, который будет генерировать сценарий bat, который выглядит следующим образом

for %%N in (1 2 3 4 5 6 7 8 9 10 11 12) do echo %%N

и так далее. Или даже "лучше":

echo 1
echo 2
echo 3
echo 4
echo 5
echo 6
echo 7
echo 8
echo 9
echo 10
echo 11
echo 12

и затем выполнить его ... Но дело в том, что мне нужен краткий способ указать диапазон чисел для итерации в пределах сценария.

Спасибо!

25
raoulsson

Вы можете сделать это так же, как это:

ECHO Start of Loop

FOR /L %i IN (1,1,5) DO (
  ECHO %i
)

1,1,5 расшифровывается как:

(start,step,end)

Также обратите внимание, что если вы встраиваете это в пакетный файл, вам нужно будет использовать двойной знак процента (%%) для префикса ваших переменных, иначе интерпретатор команд попытается вычислить переменную% i до запуска цикла.

46
Goyuix

Синтаксис

FOR %%A IN (1 2 3) DO ECHO %%A

Хорошая статья здесь и XP особенности здесь

9
Andy

Прямо из командной строки:

for /L %n in (1,1,100) do @echo %n

Использование командного файла:

@echo off
for /L %%n in (1,1,100) do echo %%n

Вывод:

1
2
3
...
100
7
fmoraesjr