Batch-Skript - Arrays: Ein Anfängerguide

Hallo da draußen, zukünftige Programmierer! Heute tauchen wir in die aufregende Welt der Arrays in Batch-Skripten ein. Mach dir keine Sorgen, wenn du noch nie eine Zeile Code geschrieben hast – ich werde dein freundlicher Guide auf dieser Reise sein. Am Ende dieses Tutorials wirst du Arrays wie ein Profi manipulieren können!

Batch Script - Arrays

Was ist ein Array?

Bevor wir loslegen, lassen wir uns verstehen, was ein Array ist. Stell dir vor, du hast eine Schublade voller Filzstifte. Jeder Filzstift ist eine andere Farbe, aber sie sind alle in einer Schublade aufbewahrt. Ein Array ist wie diese Schublade – es ist ein Behälter, der mehrere Elemente (genannt Elemente) desselben Typs aufnehmen kann.

Erstellen eines Arrays

In Batch-Skripten ist das Erstellen eines Arrays einfach. Wir verwenden den Befehl set, um unser Array zu definieren. Lassen wir ein Array von Früchten erstellen!

@echo off
set fruits[0]=Apfel
set fruits[1]=Banane
set fruits[2]=Kirsche
set fruits[3]=Dattel
set fruits[4]=Erdbeere

In diesem Beispiel haben wir ein Array namens fruits mit fünf Elementen erstellt. Jedes Element wird einer Indexnummer zugewiesen, beginnend mit 0.

Profi-Tipp: Beginne immer mit dem Array-Index 0. Dies ist eine Konvention, die in den meisten Programmiersprachen verwendet wird!

Zugriff auf Arrays

Nun, da wir unseren Obstkorban (Array) haben, wie wählen wir eine bestimmte Frucht aus? Wir verwenden die Indexnummer!

@echo off
set fruits[0]=Apfel
set fruits[1]=Banane
set fruits[2]=Kirsche

echo Das erste Obst ist: !fruits[0]!
echo Das zweite Obst ist: !fruits[1]!
echo Das dritte Obst ist: !fruits[2]!

Wenn du dieses Skript ausführst, wirst du sehen:

Das erste Obst ist: Apfel
Das zweite Obst ist: Banane
Das dritte Obst ist: Kirsche

Beachte die Ausrufezeichen (!) um die Array-Referenzen. Diese sind entscheidend! Sie sagen Batch, dass er eine verzögerte Erweiterung verwenden soll, was für den Zugriff auf Array-Elemente notwendig ist.

Ändern eines Arrays

Was ist, wenn wir uns entscheiden, dass wir rather Brombeere als Banane bevorzugen? Kein Problem! Wir können unser Array leicht ändern:

@echo off
setlocal enabledelayedexpansion

set fruits[0]=Apfel
set fruits[1]=Banane
set fruits[2]=Kirsche

echo Vorher: Das zweite Obst ist !fruits[1]!

set fruits[1]=Brombeere

echo Nachher: Das zweite Obst ist !fruits[1]!

Dieses Skript wird die Ausgabe:

Vorher: Das zweite Obst ist Banane
Nachher: Das zweite Obst ist Brombeere

Sieh, wie einfach das war? Wir haben einfach das zweite Element unseres Arrays ersetzt!

Array durchlaufen

Nun, was ist, wenn wir alle Früchte in unserem Korb sehen wollen? Wir können eine for-Schleife verwenden, um unser Array zu durchlaufen:

@echo off
setlocal enabledelayedexpansion

set fruits[0]=Apfel
set fruits[1]=Brombeere
set fruits[2]=Kirsche
set fruits[3]=Dattel
set fruits[4]=Erdbeere

for /L %%i in (0,1,4) do (
echo Obst %%i ist: !fruits[%%i]!
)

Dieses Skript wird die Ausgabe:

Obst 0 ist: Apfel
Obst 1 ist: Brombeere
Obst 2 ist: Kirsche
Obst 3 ist: Dattel
Obst 4 ist: Erdbeere

Hier ist, was passiert:

  • /L sagt der Schleife, dass sie über einen Bereich von Zahlen iterieren soll
  • %%i ist unsere Schleifenvariablen
  • (0,1,4) bedeutet, beginne bei 0, erhöhe um 1 und beende bei 4

Länge eines Arrays

Im Gegensatz zu einigen anderen Programmiersprachen hat Batch keine integrierte Möglichkeit, die Länge eines Arrays zu ermitteln. Aber keine Sorge! Wir können einen kleinen Umweg erfinden:

@echo off
setlocal enabledelayedexpansion

set fruits[0]=Apfel
set fruits[1]=Brombeere
set fruits[2]=Kirsche
set fruits[3]=Dattel
set fruits[4]=Erdbeere

set "x=0"
:SymLoop
if defined fruits[%x%] (
set /a "x+=1"
GOTO :SymLoop
)
echo Das Array fruits hat %x% Elemente.

Dieses Skript wird die Ausgabe:

Das Array fruits hat 5 Elemente.

Was wir hier tun, ist, die Anzahl der definierten Elemente zu zählen, bis wir ein undefiniertes Element erreichen. Es ist, als ob man die Anzahl der Filzstifte in der Schublade zählt, bis man eine leere Stelle erreicht!

Strukturen in Arrays erstellen

Nun werden wir ein bisschen fortgeschrittener. Wir können Arrays verwenden, um komplexere Strukturen zu erstellen. Lassen wir eine "Datenbank" von Früchten mit ihren Farben erstellen!

@echo off
setlocal enabledelayedexpansion

set "fruits[0].name=Apfel"
set "fruits[0].color=Rot"
set "fruits[1].name=Banane"
set "fruits[1].color=Gelb"
set "fruits[2].name=Heidelbeere"
set "fruits[2].color=Blau"

for /L %%i in (0,1,2) do (
echo Obst %%i ist eine !fruits[%%i].color! !fruits[%%i].name!
)

Dies wird die Ausgabe:

Obst 0 ist eine Rot Apfel
Obst 1 ist eine Gelb Banane
Obst 2 ist eine Blau Heidelbeere

Wir haben eine Struktur erstellt, bei der jede Frucht einen Namen und eine Farbe hat. Es ist wie eine detaillierte Filzstiftschublade, bei der jeder Filzstift eine Farbe und einen spezifischen Namen hat!

Schlussfolgerung

Glückwunsch! Du hast deine ersten Schritte in die Welt der Arrays in Batch-Skripten unternommen. Wir haben das Erstellen von Arrays, den Zugriff und die Änderung von Elementen, das Durchlaufen von Arrays, das Ermitteln der Länge und das Erstellen komplexer Strukturen behandelt.

Denke daran, Übung macht den Meister. Versuche, deine eigenen Arrays zu erstellen, vielleicht mit deinen Lieblingsbüchern oder Filmen. Probier verschiedene Möglichkeiten aus, um die Daten zu manipulieren und anzuzeigen. Bereitwillig wirst du Arrays verwenden, um alle Arten von Informationen in deinen Skripten zu organisieren und zu verwalten!

Frohes Coden und möge deine Arrays stets ertragreich sein! ???

Methode Beschreibung
Erstellen eines Arrays Verwende set arrayname[index]=value
Zugriff auf Array-Elemente Verwende !arrayname[index]! mit verzögerter Erweiterung
Ändern eines Arrays Wert neu zuweisen mit set arrayname[index]=newvalue
Array durchlaufen Verwende eine for /L-Schleife
Länge des Arrays ermitteln Verwende eine Schleife, um definierte Elemente zu zählen
Strukturen erstellen Verwende Punkt-Schreibweise: arrayname[index].property=value

Credits: Image by storyset