Tableau (Array) dans le langage de script Batch
View more Tutorials:
Un tableau est une rangée d'éléments contigus qui sont des index (index) numérotés : 0, 1, 2, ....

Pour les autres langues, un tableau a une taille fixe. Mais dans le langage Batch, le tableau a une taille dynamique et aucun attribut ne décrit la longueur du tableau (le nombre d'éléments du tableau). Et aucune fonction (function) ne vous aide directement à obtenir le nombre d'éléments de tableau.
Tous les éléments du tableau doivent être assignés à des valeurs via une requête set. Sinon, cet élément n'existe pas.
** syntax **
@echo off set myarray[0] = Abc set /A myarray[1] = 234 set myarray[2]=Def set myarray[0]=A new value
Exemple :
arrayExample1.bat
@echo off set names[0]=Tom set names[1]=Jerry set names[2]=Donald set names[3]=Aladin echo names[0]= %names[0]% echo names[3]= %names[3]% @rem names[10] does not exists! echo names[10]= %names[10]% pause

Vous pouvez attribuer de nouvelles valeurs aux éléments du tableau. Voici un exemple :
arrayExample2.bat
@echo off set names[0]=Tom set names[1]=Jerry echo names[0]= %names[0]% @rem: Assign new value set names[0]=Donald echo After assign new value to names[0]: echo names[0]= %names[0]% pause

L'utilisation la commande defined vous aide à savoir l'existence d'un élément dans un tableau.
arrayDefinedExample.bat
@echo off set Arr[0]=1000 set Arr[1]=5000 set Arr[2]=3000 if not defined Arr[5] ( echo Element at 5 does not exists! ) if defined Arr[1] ( echo Element at 1 exists! ) pause

Voir plus :
La boucle For /F peut être approuvé sur une portée de numéros (Range of numbers), par conséquent, il peut être approuvé sur une gamme d'indices de tableau (range of indexes).
fetchArrayExample1.bat
@echo off set fruits[0]=Apple set fruits[1]=Apricot set fruits[2]=Asparagus set fruits[3]=Aubergine set fruits[4]=Banana FOR /L %%i IN (0 1 4) DO ( call echo Element At %%i = %%fruits[%%i]%% ) pause

Si vous ne connaissez pas le nombre d'éléments de tableau à l'avance, vous pouvez répéter ses éléments en utilisant la commande goto.
fetchArrayExample2.bat
@echo off set fruits[0]=Apple set fruits[1]=Apricot set fruits[2]=Asparagus set fruits[3]=Aubergine set fruits[4]=Banana set /A i = 0 :my_loop if defined fruits[%i%] ( call echo Element At %i% = %%fruits[%i%]%% set /a i = %i% + 1 goto :my_loop ) echo Done! pause

Dans le langage Batch, un élément de tableau peut avoir une structure (structure). Une structure est un objet avec de nombreux attributs, par exemple un objet représente pour une personne avec 2 attributs tels que firstName, lastName (le prénom, le nom).
structureArrayExample.bat
@echo off set persons[0].firstName=Bill set persons[0].lastName=Gates set persons[1].firstName=Steve set persons[1].lastName=Jobs set persons[2].firstName=Mark set persons[2].lastName=Zuckerberg set persons[3].firstName=Sundar set persons[3].lastName=Pichai FOR /L %%i IN (0 1 3) DO ( call echo Person At %%i = %%persons[%%i].firstName%% %%persons[%%i].lastName%% ) pause
