web-dev-qa-db-fra.com

Windows FOR boucle en boucle sur la plage via la ligne de commande

Je souhaite effectuer plusieurs fois une opération à partir d'une fenêtre de commande. Le bon sens me dit qu'une boucle FOR devrait être capable de gérer cela. Effectivement, si je veux exécuter, disons, myProg.exe, Je peux ouvrir une fenêtre de commande et utiliser:

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

Facile.

Mais que faire si je veux exécuter myProg.exe 1000 fois? Je veux spécifier une plage dans la boucle FOR, mais j'ai du mal à voir comment procéder.

Intuitivement, il semble que je devrais être capable de faire quelque chose comme l'un des suivants:

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

Mais, bien sûr, cela ne fonctionne pas. La boucle FOR interprète la liste comme 3 jetons et 1 jeton, respectivement, donc myProg.exe n'est exécuté que 3 fois et 1 fois, respectivement.


Solution de fichier batch

Il serait probablement facile d'écrire une sorte de fichier batch (.bat):

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

Mais n'y a-t-il pas un moyen facile de le faire à partir de la ligne de commande?

22
Kirby

Vous pouvez utiliser la balise/l dans votre instruction pour la faire parcourir un ensemble de nombres.

par exemple.

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

Cela dit boucle à travers la plage, en commençant à 1, en progressant 1 à la fois, jusqu'à 1000

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

39
Jeremy

pour/l %% i in (1,1,100) faire écho %% i

ajouter un autre signe% avant de travailler

6
user2106965