Para Loop contando de 1 a n em um script de batida do windows

22

Eu preciso executar um comando do Windows n vezes dentro de um arquivo de script de morcego. Eu sei como fazer isso em várias linguagens de programação, mas não consigo obtê-lo direito na linha de comando do windows: - (

Espero que algo como

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

ou mesmo isso (embora não inteiramente a sério)

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

Obrigado!

EDITAR

Eu posso escrever um programa em java, perl, c ou qualquer outra coisa que gere um script de morcego que se pareça com isso

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

e assim por diante. Ou até "melhor":

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

e depois executá-lo ... Mas o fato é que eu preciso de uma maneira concisa para especificar um intervalo de números para iterar através de dentro do script.

Obrigado!

    
por raoulsson 26.08.2009 / 16:09

3 respostas

38

Você pode fazer da seguinte forma:

ECHO Start of Loop

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

O 1,1,5 é decodificado como:

(start,step,end)

Observe também que, se você estiver incorporando isso em um arquivo em lote, precisará usar o sinal de porcentagem duplo (%%) para prefixar suas variáveis, caso contrário, o interpretador de comandos tentará avaliar a variável% i antes de executar o arquivo. loop.

    
por 26.08.2009 / 16:21
8

A sintaxe é

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

Bom artigo aqui e especificidades do XP aqui

    
por 26.08.2009 / 16:14
5

Diretamente da linha de comando:

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

Usando um arquivo em lotes:

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

Exibe:

1
2
3
...
100
    
por 10.09.2012 / 16:50