2013-03-22 19 views
18

voglio eseguire un'operazione più volte da una finestra DOS. Il buon senso mi dice che un ciclo DOS FOR dovrebbe essere in grado di gestirlo. Abbastanza sicuro, se voglio eseguire, per esempio, myProg.exe, posso aprire una finestra di comando e utilizzare:DOS ciclo FOR sulla gamma attraverso la linea di comando

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

facile.

Ma cosa succede se voglio eseguire myProg.exe 1000 volte? Voglio specificare un intervallo nel ciclo FOR, ma ho difficoltà a vedere come farlo.

Intuitivamente, sembra che dovrei essere in grado di fare qualcosa di simile a uno dei seguenti modi:

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

Ma, naturalmente, questo non funziona. Il ciclo FOR interpreta l'elenco come 3 token e 1 token, rispettivamente, quindi myProg.exe viene eseguito solo 3 volte e 1 volta, rispettivamente.


Batch File Solution

È probabilmente facile scrivere una sorta di batch (.bat) File:

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

Ma non c'è un modo semplice per fai questo dalla riga di comando?

+0

possibile duplicato del [Batch ciclo di script] (http://stackoverflow.com/questions/2591758/batch-script-loop) – LittleBobbyTables

+0

Grazie y ou. Non sono riuscito a trovarlo prima di postarlo, forse a causa del titolo. Comunque, grazie! – Kirby

risposta

34

È possibile utilizzare il tag/l nella sua dichiarazione per farlo scorrere una serie di numeri.

es.

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

Questo dice ciclo attraverso la gamma, a partire da 1, passo 1 alla volta, fino a 1000

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

6

per/l %% i in (1,1,100) do echo% % i

aggiungo un altro segno% prima che io lavorassi

+3

Si noti che il doppio% è richiesto solo per il corretto funzionamento in uno script batch. È necessaria la percentuale singola per funzionare sulla riga di comando. – scenia

Problemi correlati