PowerShell-Arrays: So erstellen und verwenden Sie sie


Variablen sind die grundlegendste Datenstruktur in jede Art von Codierung. Für die meisten Zwecke reichen einzelne Variablen jedoch kaum aus, insbesondere wenn es um komplexere Algorithmen geht.

Hier kommen Arrays ins Spiel. Ob C++ oder Python, Arrays sind in jeder Programmiersprache in irgendeiner Form vorhanden. Aber was ist mit Windows PowerShell? Wie funktionieren PowerShell-Arrays? Wie benutzt man sie? Wie ist ihre Syntax? Finden wir es heraus.

PowerShell-Arrays 101

Einfach ausgedrückt ist ein Array nur eine strukturierte Sammlung von Variablen. Die Idee besteht darin, die Mühe zu vermeiden, den Überblick über Dutzende von Namen zu behalten, indem zusammengehörige Variablen in einem nummerierten Satz zusammengefasst werden.

In PowerShell können Sie eine Variable erstellen, indem Sie einem Variablennamen das $-Symbol voranstellen. Zum Beispiel:

$prime = 13

Die Variable kann jeden Datentyp enthalten, von Zahlen bis hin zu Zeichenfolgen. Sie müssen lediglich doppelte oder einfache Anführungszeichen verwenden, um eine Zeichenfolge anzugeben.

$name = „Levin“

Um nun ein neues Array zu erstellen, weisen Sie einfach mehrere Werte, getrennt durch Kommas, derselben Variablen zu. So:

$week = „Montag“, „Dienstag“, „Mittwoch“, „Donnerstag“, „Freitag“, „Samstag“, „Sonntag“

Manche Leute ziehen es vor, eine Variable explizit in ein Array umzuwandeln, um Verwirrung zu vermeiden, obwohl das nicht notwendig ist. Setzen Sie dazu die Werte in Klammern, denen das @-Symbol vorangestellt ist.

$week = @(„Montag“, „Dienstag“, „Mittwoch“, „Donnerstag“, „Freitag“, „Samstag“, „Sonntag“)

Dies ist normalerweise nützlich, wenn Sie versuchen, die Ausgabe anderer Befehle in ein Array zu schreiben, wo Sie sie nicht manuell im richtigen Format schreiben können.

Erstellen eines Arrays

Wir haben bereits die gebräuchlichste Methode zum Erstellen eines Arrays kennengelernt. Aber je nach Situation gibt es andere Möglichkeiten, die möglicherweise besser geeignet sind. Wenn Sie beispielsweise ein Array erstellen möchten, das einen Zahlenbereich enthält, können Sie den Bereichsoperator verwenden:

$digits = (0..9)

Dadurch wird ein Array aller zehn Ziffern von null bis neun erstellt. Sie können auch ein leeres Array initialisieren, falls Sie später nur einen Ort zum Speichern von Werten benötigen..

$values ​​= @()

Mehrere Arrays können sogar ineinander verschachtelt werden, allerdings kann diese Art der Verwendung sehr schnell verwirrend werden.

$coordinates = @(
    (5, 10, 23),
    (11, 7, 16)
)

Standardmäßig kann ein Array jeden Variablentyp speichern, seien es Zahlen, Zeichenfolgen oder eine Mischung aus beidem. Sie können einen Typ jedoch explizit definieren, falls Sie die darin eingegebenen Werte begrenzen möchten. Zum Beispiel:

[int[]] $numbers = 2,3,4,5

Auf diese Weise kann das Array nur ganze Zahlen enthalten. Der Versuch, ihm einen anderen Werttyp zuzuweisen, wird einen Fehler zurückgeben. Dies kann nützlich sein, um einfache Fehler bei Arrays zu verhindern, die ausschließlich mit numerischen Werten arbeiten, da die Eingabe einer Zeichenfolge in eine Variable, die in Berechnungen verwendet werden soll, zu Problemen führt.

Zugriff auf Arrays

Bisher haben wir mehrere Methoden zum Erstellen von Arrays mit verschiedenen Datentypen gesehen. Aber wie greifen Sie auf diese Daten zu?

PowerShell-Arrays verwenden dasselbe Format wie andere Programmiersprachen. Auf jede Array-Variable kann über ihre Indexnummer zugegriffen werden. Zum Beispiel:

$var = $numbers[5]

Dadurch wird der im Index fünf des Arrays $numbersgespeicherte Wert in die Variable $varkopiert. Beachten Sie, dass Array-Indizes bei 0 beginnen zu zählen, sodass auf das erste Element mit Null zugegriffen wird.

Wenn wir dies ausgeben würden, zum Beispiel:

„$days[2]“

Wir bekommen Mittwoch, nicht Dienstag.

Mit derselben Methode können Sie diese Werte auch ändern. Der folgende Befehl ändert beispielsweise das zweite Element des Arrays auf Null:

$numbers[1] = 0

Sie können einem vorhandenen Array auch weitere Elemente hinzufügen, anstatt die Werte aktueller Einträge zu ändern, indem Sie sie einfach wie einen arithmetischen Ausdruck hinzufügen.

$names += „Johny“

Mit dieser Methode können auch mehrere Einträge gleichzeitig oder sogar ganze Arrays hinzugefügt werden.

$names += „Charlie, Liam, Teresa“

$names += $nachnames

Die durch Kommas getrennte Methode gilt auch für den Zugriff auf mehrere Array-Elemente. Wenn Sie dies beispielsweise eingeben, werden die ersten fünf Elemente von $daysin $weekdaysgespeichert..

$weekdays = $days[0,1,2,3,4]

Durch Arrays iterieren

Der manuelle Zugriff auf bestimmte Elemente eines Arrays ist schön und gut, aber wenn Sie Aktionen für den gesamten Inhalt eines Arrays ausführen möchten, kann es mühsam werden. Ein eleganterer Ansatz ist die Verwendung einer For-Schleife.

For-Schleifen können systematisch alle Elemente eines Arrays durchlaufen und jeden Wert gemäß den Anweisungen verarbeiten. So können Sie eine solche Schleife konstruieren:

Für ($i = 0 ; $i -lt $days.Length ; $i++)
{

    $days[$i]
}

Die Funktion array.Length gibt die Größe des Arrays zurück, was im Wesentlichen der Anzahl der darin enthaltenen Elemente entspricht. Dies kann in den Testausdrucksparameter einer For-Schleife eingefügt werden, um alle Elemente umfassend zu durchlaufen.

Die Foreach-Schleife und die Foreach-Objekt-Schleife können dasselbe mit einem noch schlankeren PowerShell-Skript tun.

Foreach ($day in $days)
{

    $day
}

Dies erspart Ihnen den Aufwand, die Größe des Arrays zu bestimmen, und überlässt die Details der Verarbeitung durch PowerShell.

Wann sollten Sie PowerShell-Arrays verwenden

Die größte Fehlerquelle in einem komplexen Skript sind falsch referenzierte Variablen. Dies geschieht aufgrund des Vorhandenseins einer großen Anzahl eindeutig benannter Variablen, die es schwierig machen, sich an ihren Zweck zu erinnern.

Die einfachste Lösung für dieses Problem ist die umfassende Verwendung von Arrays. Alle in irgendeiner Weise zusammenhängenden Variablen können einem einzelnen Array zugewiesen und über ihre Indexnummern aufgerufen werden.

Microsoft PowerShells Hauptanwendungsfall ist die Automatisierung, und Arrays spielen dabei eine entscheidende Rolle. Die von PowerShell-Cmdlets zurückgegebenen Objekte können in Arrays gespeichert und iteriert werden. Dadurch können aufeinanderfolgende Aufgaben automatisch ausgeführt werden, was die Systemverwaltung erheblich vereinfacht.

.

Zusammenhängende Posts:


1.06.2022