Accueil HGL (général) Articles de blog Articles de blog (filtre : programmation)  

Hugoland - programmation (archives)

Utiliser FOR/L

Première publication : 2016
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 faire

for /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