Sommaire
• Texte de l'archive (2016)
• Notes (2025)
Autres articles
Salut, voici la partie 3 de mes tutos sur FOR La commande FOR permet de faire de très nombreuses choses! Avec FOR /L, on peut sortir une suite de nombres définie avec un début, une fin et un pas (de 1 en 1, ou de 2 en 2, etc...). Comme vous le savez, j'adore démonter des murs de briques ! C'est reparti Notez que le pas n'est pas l'écartement entre 2 nombres pris, mais l'écartement +1, le dessin du fameux mur est plus parlant !La pratique maintenant! Soit un mur :
et soit une commande for :
for /L %%N in (11,3,28) do echo %%N
Ce qui donne en français : Pour (for) toutes les valeurs (/L) de (in) 11 à 28 avec un pas de 3, afficher (echo) ces nombres (%%N, qui est la variable). Et en murs qui explosent :Vérifions :
Voilà nous avons sorti nos briques!
Une autre possibilité d'utilisation est de répéter X fois la même opération.
:: adaptez X par le nombre de fois set x=5 for /L %%A in (1,1,%x%) do echo Ceci fonctionne.
Par exemple pour répéter 5 fois un echo :Enfin, on peut réinitialiser des variables contenant des chiffres ! Au lieu de
set var1=0 set var2=0 set var3=0 set var4=0 set var5=0 set var6=0 set var7=0
on peut fairefor /L %%R in (1,1,7) do set var%%R=0
Voilà !
Notes 2025 :
Le tutoriel ci-dessus a été écrit vers mes 15 ans sur un forum désormais inaccessible. Je l'ai laissé ici tel que je l'avais écrit à l'époque. J'ai simplement ôté un risque de confusion dans un code en remplaçant (1,1,X) par (1,1,%x%) et en définissant %x% à la ligne précédente car X est, dans l'esprit, une variable, et les variables en batch sont entourées de %. Autant faire un code qui fonctionne. Notons que les exemples des captures d'écran (consoles sur fond noir) représentent une syntaxe de variables dans FOR convenant à une écriture directe dans la console, par opposition aux codes qui sont donnés pour un fichier batch. D'où la présence d'un seul pourcent : %a au lieu de %%A. Cela n'a pas été mentionné mais il est également possible de spécifier un pas négatif, pour compter à rebours, par exemple :for /L %%R in (7,-1,1) do echo %%R