Eu preciso executar um comando do Windows n vezes dentro de um arquivo de script bat. Eu sei como fazer isso em várias linguagens de programação, mas não consigo acertar na linha de comando do Windows :-(
Eu esperaria algo como
for(int i = 0; i < 100; i++) {
// do something
}
ou mesmo isso (embora não seja totalmente sério)
1.upto(100, {
// do something
})
Obrigado!
EDITAR
Eu posso escrever um programa em java, perl, c ou o que quer que gere um script bat que se parece 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 ainda "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 problema é que preciso de uma maneira concisa de especificar um intervalo de números para iterar no script.
Obrigado!
Respostas:
Você pode fazer o mesmo da seguinte maneira:
O 1,1,5 é decodificado como:
Observe também que, se você incorporar isso em um arquivo em lotes, será necessário 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 loop.
fonte
@
sinal suprimirá a impressão dos comandos conforme eles são executados na linha de comando. "... DO @ (..."%%i
no seu texto e adicionar um comentário que seja%i
para execução direta na linha de comando. A maioria dos usuários irá testá-lo no arquivo BAT e tentar encontrar o motivo pelo qual eles obtêm erros (como eu).A sintaxe é
Bom artigo aqui e detalhes do XP aqui
fonte
Diretamente da linha de comando:
Usando um arquivo em lotes:
Exibe:
fonte