Arrays in der Batch-Skriptsprache
View more Tutorials:
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

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

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

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
