Variablen sind die grundlegendste Datenstruktur in jeder Art von Codierung. Aber einzelne Variablen reichen für die meisten Zwecke kaum aus, besonders 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 verwenden Sie sie? Was ist ihre Syntax? Finden wir es heraus.

Inhaltsverzeichnis

PowerShell Arrays 101

Einfach gesagt ist ein Array nur eine strukturierte Sammlung von Variablen. Die Idee ist, den Aufwand zu beseitigen, den Überblick über Dutzende von Namen zu behalten, indem verwandte Variablen in einem nummerierten Satz zusammengefasst werden.

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

$prime=13

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

$name=„Levin“

Um jetzt ein neues Array zu erstellen, weisen Sie es einfach zu mehrere Werte für dieselbe Variable, getrennt durch Kommas. So:

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

Einige Leute ziehen es vor, eine Variable explizit in ein Array zu werfen, um Verwirrung zu vermeiden, obwohl das nicht notwendig ist. Setzen Sie dazu die Werte in Klammern mit vorangestelltem @-Zeichen.

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

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

Ein Array erstellen

Wir haben bereits die gebräuchlichste Methode zum Erstellen eines Arrays gesehen. Aber je nach Situation gibt es andere Möglichkeiten, die geeigneter sein könnten. Wenn Sie beispielsweise ein Array erstellen möchten, das eine Reihe von Zahlen 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 Platz zum Speichern von Werten brauchen.

$values ​​=@()

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

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

Standardmäßig kann ein Array jeden Variablentyp speichern, seien es Zahlen, Zeichenketten oder eine Mischung aus beidem. Sie können einen Typ jedoch explizit definieren, falls Sie die darin enthaltenen Werte einschränken 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, gibt einen Fehler zurück. Dies kann nützlich sein, um einfache Fehler bei Arrays zu vermeiden, die ausschließlich mit numerischen Werten arbeiten, da die Eingabe einer Zeichenkette in eine Variable, die in Berechnungen verwendet werden soll, Probleme verursacht.

Zugriff auf Arrays

Bis jetzt Wir haben mehrere Methoden zum Erstellen von Arrays gesehen, die verschiedene Datentypen enthalten. 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]

Dies kopiert den Wert, der in Index fünf des $numbers-Arrays gespeichert ist, in das $ var-Variable. Beachten Sie, dass Array-Indizes bei 0 zu zählen beginnen, also wird auf das erste Element mit null zugegriffen.

Wenn wir dies zum Beispiel ausgeben würden:

“$days[2 ]”

Wir erhalten Mittwoch, nicht Dienstag.

Sie können dieselbe Methode auch verwenden, um diese Werte zu ändern. Beispielsweise ändert der folgende Befehl das zweite Element des Arrays auf Null:

$numbers[1]=0

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

$names +=„Johny“

Diese Methode kann auch verwendet werden, um mehrere Einträge auf einmal oder sogar ganze Arrays hinzuzufügen.

$names +=„Charlie, Liam, Teresa“

$names +=$surnames

Die kommaseparierte Methode gilt auch für den Zugriff auf mehrere Array-Elemente. Wenn Sie dies eingeben, werden beispielsweise die ersten fünf Elemente von $days in $weekdays gespeichert.

$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:

For ($i=0 ; $i-lt $days.Length ; $i++)
{

   $days[$i]
}

Die Funktion array.Length gibt die Größe des Arrays zurück, was im Grunde 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-Objektschleife können dasselbe mit einem noch schlankeren PowerShell-Skript tun.

Foreach ($day in $days)
{

    $day
}

So sparen Sie sich den Aufwand die Größe des Arrays bestimmen und die Details PowerShell überlassen.

Wann sollten Sie PowerShell-Arrays verwenden?

Die größte Fehlerquelle in einem komplexen Skript sind falsch referenzierte Variablen. Dies geschieht aufgrund der Anwesenheit einer großen Anzahl von eindeutig benannten Variablen, was es schwierig macht, sich an ihren Zweck zu erinnern.

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

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

Categories: IT Info