Script par lots - Tableaux

Les tableaux ne sont pas spécifiquement définis comme type dans Batch Script mais peuvent être implémentés. Les choses suivantes doivent être notées lorsque les tableaux sont implémentés dans Batch Script.

  • Chaque élément du tableau doit être défini avec la commande set.
  • La boucle «for» serait nécessaire pour parcourir les valeurs du tableau.

Créer un tableau

Un tableau est créé à l'aide de la commande set suivante.

set a[0]=1

Où 0 est l'index du tableau et 1 est la valeur affectée au premier élément du tableau.

Une autre façon d'implémenter des tableaux consiste à définir une liste de valeurs et à parcourir la liste de valeurs. L'exemple suivant montre comment cela peut être implémenté.

Exemple

@echo off 
set list = 1 2 3 4 
(for %%a in (%list%) do ( 
   echo %%a 
))

Production

La commande ci-dessus produit la sortie suivante.

1
2
3
4

Accès aux baies

Vous pouvez récupérer une valeur du tableau à l'aide de la syntaxe d'indice, en passant l'index de la valeur que vous souhaitez récupérer entre crochets immédiatement après le nom du tableau.

Exemple

@echo off 
set a[0]=1 
echo %a[0]%

Dans cet exemple, l'index commence à 0, ce qui signifie que le premier élément est accessible en utilisant l'index comme 0, le deuxième élément peut être accédé en utilisant l'index comme 1 et ainsi de suite. Vérifions l'exemple suivant pour créer, initialiser et accéder aux tableaux -

@echo off
set a[0] = 1 
set a[1] = 2 
set a[2] = 3 
echo The first element of the array is %a[0]% 
echo The second element of the array is %a[1]% 
echo The third element of the array is %a[2]%

La commande ci-dessus produit la sortie suivante.

The first element of the array is 1 
The second element of the array is 2 
The third element of the array is 3

Modification d'un tableau

Pour ajouter un élément à la fin du tableau, vous pouvez utiliser l'élément set avec le dernier index de l'élément du tableau.

Exemple

@echo off 
set a[0] = 1  
set a[1] = 2  
set a[2] = 3 
Rem Adding an element at the end of an array 
Set a[3] = 4 
echo The last element of the array is %a[3]%

La commande ci-dessus produit la sortie suivante.

The last element of the array is 4

Vous pouvez modifier un élément existant d'un tableau en attribuant une nouvelle valeur à un index donné, comme indiqué dans l'exemple suivant -

@echo off 
set a[0] = 1 
set a[1] = 2  
set a[2] = 3 
Rem Setting the new value for the second element of the array 
Set a[1] = 5 
echo The new value of the second element of the array is %a[1]%

La commande ci-dessus produit la sortie suivante.

The new value of the second element of the array is 5

Itération sur un tableau

L'itération sur un tableau est réalisée en utilisant la boucle «for» et en parcourant chaque élément du tableau. L'exemple suivant montre une manière simple d'implémenter un tableau.

@echo off 
setlocal enabledelayedexpansion 
set topic[0] = comments 
set topic[1] = variables 
set topic[2] = Arrays 
set topic[3] = Decision making 
set topic[4] = Time and date 
set topic[5] = Operators 

for /l %%n in (0,1,5) do ( 
   echo !topic[%%n]! 
)

Les choses suivantes doivent être notées à propos du programme ci-dessus -

  • Chaque élément du tableau doit être spécifiquement défini à l'aide de la commande set.

  • La boucle «for» avec le paramètre / L pour parcourir les plages est utilisée pour parcourir le tableau.

Production

La commande ci-dessus produit la sortie suivante.

Comments 
variables 
Arrays 
Decision making 
Time and date 
Operators

Longueur d'un tableau

La longueur d'un tableau se fait en itérant sur la liste des valeurs du tableau car il n'y a pas de fonction directe pour déterminer le nombre d'éléments dans un tableau.

@echo off 
set Arr[0] = 1 
set Arr[1] = 2 
set Arr[2] = 3 
set Arr[3] = 4 
set "x = 0" 
:SymLoop 

if defined Arr[%x%] ( 
   call echo %%Arr[%x%]%% 
   set /a "x+=1"
   GOTO :SymLoop 
)
echo "The length of the array is" %x%

Production

Sortie La commande ci-dessus produit la sortie suivante.

The length of the array is 4

Création de structures dans des tableaux

Les structures peuvent également être implémentées dans des fichiers batch en utilisant un peu de codage supplémentaire pour l'implémentation. L'exemple suivant montre comment cela peut être réalisé.

Exemple

@echo off 
set len = 3 
set obj[0].Name = Joe 
set obj[0].ID = 1 
set obj[1].Name = Mark 
set obj[1].ID = 2 
set obj[2].Name = Mohan 
set obj[2].ID = 3 
set i = 0 
:loop 

if %i% equ %len% goto :eof 
set cur.Name= 
set cur.ID=

for /f "usebackq delims==.tokens=1-3" %%j in (`set obj[%i%]`) do ( 
   set cur.%%k=%%l 
) 
echo Name = %cur.Name% 
echo Value = %cur.ID% 
set /a i = %i%+1 
goto loop

Les éléments clés suivants doivent être notés à propos du code ci-dessus.

  • Chaque variable définie à l'aide de la commande set a 2 valeurs associées à chaque index du tableau.

  • La variable i est mis à 0 afin que nous puissions boucler à travers la structure sera la longueur du tableau qui est 3.

  • Nous vérifions toujours la condition selon laquelle la valeur de i est égale à la valeur de len et sinon, nous parcourons le code.

  • Nous pouvons accéder à chaque élément de la structure en utilisant la notation obj [% i%].

Production

La commande ci-dessus produit la sortie suivante.

Name = Joe 
Value = 1 
Name = Mark 
Value = 2 
Name = Mohan 
Value = 3