2013-03-22 5 views
18

Ich möchte eine Operation mehrmals aus einem DOS-Fenster ausführen. Der gesunde Menschenverstand sagt mir, dass eine DOS-FOR-Schleife in der Lage sein sollte, damit umzugehen. Sicher genug, wenn ich ausführen wollen, sagen wir, myProg.exe, kann ich ein Befehlsfenster öffnen und verwenden:DOS FOR Schleife auf Bereich über die Befehlszeile

C:\> FOR %i in (1 2 3) DO myProg.exe 

Einfach.

Aber was, wenn ich myProg.exe 1000 Mal ausführen möchte? Ich möchte einen Bereich in der FOR-Schleife angeben, aber ich habe Probleme, dies zu tun.

Intuitiv scheint es, wie ich in der Lage sein sollte, so etwas wie eine der folgenden Funktionen ausführen:

C:\> FOR %i in (1 to 1000) DO myProg.exe 
C:\> FOR %i in (1-1000) DO myProg.exe 

Aber natürlich, das funktioniert nicht. Die FOR-Schleife interpretiert die Liste als 3 Tokens bzw. 1 Token, so dass myProg.exe nur 3-mal bzw. 1-mal ausgeführt wird.


Batch File Lösung

Es wahrscheinlich irgendeine Art von Batch-Datei (.bat) zu schreiben, wäre einfach:

SET COUNT=0 
:MyLoop 
    IF "%COUNT%" == "1000" GOTO EndLoop 
    myProg.exe 
    SET /A COUNT+=1 
    GOTO MyLoop 
:EndLoop 

Aber gibt es nicht eine einfache Möglichkeit, Mach das von der Kommandozeile aus?

+0

möglich Duplikat [Batch-Skript-Schleife] (http://stackoverflow.com/questions/2591758/batch-script-loop) – LittleBobbyTables

+0

Thank y zu arbeiten ou. Ich konnte das nicht finden, bevor ich das posten konnte - vielleicht wegen des Titels. Trotzdem, danke! – Kirby

Antwort

34

Sie können das/l-Tag in Ihrer Anweisung verwenden, um es durch eine Reihe von Zahlen zu durchlaufen.

z.

C:\> FOR /l %i in (1,1,1000) DO myProg.exe

Dies sagt Schleife durch den Bereich beginnend bei 1, 1 zu einem Zeitpunkt treten, bis 1000

http://ss64.com/nt/for_l.html

6

für/l %% i in (1,1,100) tun echo% % i

ein weiteres Zeichen% addieren, bevor ich

+3

Beachten Sie, dass das Double% nur benötigt wird, damit es in einem Batch-Skript ordnungsgemäß funktioniert. Single% ist erforderlich, damit es in der Befehlszeile funktioniert. – scenia