Arrays in der Batch-Skriptsprache

1- Array in der Sprache Batch

Array ist eine Reihe der angrenzenden Elemente. Die Elemente werden die Index  0, 1, 2, ... gemarkiert.
Für die anderen Sprache hat Array die bestimmte Größe. Aber in der Sprache   Batch hat Array die dynamische Größe und es gibt kein Attribut zur Bezeichnung der Länge des Array (die Anzahl der Elemente des Array). Und keine Funktion hilft Ihnen direkt bei der Holung der Anzahl der Array-Elementen
Alle Elementen des Array müssen die Wert durch den Befehl  set angewiesen. Ansonsten existiert das Element nicht
** syntax **
@echo off

set myarray[0] = Abc
set /A myarray[1] = 234
set myarray[2]=Def

set myarray[0]=A new value
 
Zum Beispiel
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
Sie können die neue Wert für die Array-Elementen anweisen. Unter ist das das Beispiel
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

2- Die Prüfung der Existenz eines Element

Die Verwendung des Befehl  defined hilft Ihnen zu prüfen, ob ein Element im Array existiert oder nicht?
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

3- Auf die Elemente des Array iterieren

Mehr sehen
Die Schleife  For /F kann auf einer Reihe der Zahlen (Range of numbers) durchgelaufen werden. Deshalb kann sie auf die Reihe der Index (range of indexes) durchlaufen
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
Wenn Sie die Anzahl der Array- elemente im Voraus nicht kennen, können Sie auf ihre Elementen durch die Verwendung des Befehl   goto ​​​​​​​iterieren.
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

4- Ein Element hat die Struktur

In der Sprache  Batch kann das Element des Array eine Struktur (Structure) haben. Eine Struktur ist ein Objekt mit mehren Attribute, zum Beispiel ein Objekt vertritt eine Person mit 2 Attributes   firstName, lastName
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