Для подсчета Loop от 1 до n в сценарии bat 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

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

Спасибо!

22 голоса | спросил raoulsson 26 PM00000060000003631 2009, 18:09:36

3 ответа


38

Вы можете сделать это примерно так:

ECHO Start of Loop

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

1,1,5 декодируется как:

(start,step,end)

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

ответил Goyuix 26 PM00000060000001631 2009, 18:21:16
8

Синтаксис

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

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

ответил Andy 26 PM00000060000000331 2009, 18:14:03
5

Непосредственно из командной строки:

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
ответил fmoraesjr 10 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 10 Sep 2012 18:50:10 +0400 2012, 18:50:10

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132