it-swarm.com.de

Für die Schleifenzählung von 1 bis n in einem Windows Bat-Skript

Ich muss einen Windows-Befehl n-mal in einer Bat-Skriptdatei ausführen. Ich weiß, wie man das in verschiedenen Programmiersprachen macht, kann es aber nicht schaffen, es direkt in der Windows-Befehlszeile zu machen :

Ich würde so etwas auch erwarten

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

oder sogar das (wenn auch nicht ganz ernst)

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

Vielen Dank!

--- ([~ # ~] edit [~ # ~]

Ich kann ein Programm in Java, Perl, c oder was auch immer schreiben, das ein Bat-Skript generiert, das so aussieht

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

und so weiter. Oder noch "besser":

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

und dann ausführen ... Aber die Sache ist, dass ich eine präzise Methode brauche, um einen Bereich von Zahlen anzugeben, die durch innerhalb des Skripts iteriert werden sollen.

Vielen Dank!

25
raoulsson

Sie können es ähnlich machen:

ECHO Start of Loop

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

Die 1,1,5 wird dekodiert als:

(start,step,end)

Beachten Sie außerdem, dass Sie, wenn Sie dies in eine Batchdatei einbetten, das doppelte Prozentzeichen (%%) verwenden müssen, um Ihren Variablen ein Präfix zu geben. Andernfalls versucht der Befehlsinterpreter, die Variable% i vor dem Ausführen der Schleife auszuwerten.

46
Goyuix

Syntax ist

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

Guter Artikel hier und XP Besonderheiten hier

9
Andy

Direkt von der Kommandozeile:

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

Verwenden einer Batchdatei:

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

Anzeigen:

1
2
3
...
100
7
fmoraesjr