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