Wie man ein Array von benutzerdefinierten Objekten in PowerShell initialisiert

  1. Verwendung von Arrays in Windows PowerShell
  2. Zugriff auf ein Array in Windows PowerShell
  3. Ändern von Elementen in einem Array mit Windows PowerShell
  4. Iteration über ein Array in Windows PowerShell
  5. Erstellen von Objekten in einem Array mit Windows PowerShell
  6. Zugriff auf Objekte in einem Array mit Windows PowerShell
  7. Aktualisieren von Objekten in einem Array mit Windows PowerShell
  8. Zugriff auf Eigenschaften in einem Array mit Windows PowerShell
  9. Erstellen einer ArrayList in Windows PowerShell
Wie man ein Array von benutzerdefinierten Objekten in PowerShell initialisiert

Arrays sind ein grundlegendes Merkmal von Windows PowerShell. Diese ermöglichen es, genaue Datenstrukturen zu ingestieren, zu manipulieren und auszugeben (und nicht nur rohe Zeichenfolgen).

Diese Fähigkeit macht PowerShell anders und praktischer als andere Skriptsprachen.

Dieser Artikel wird erklären, was Arrays sind, wie man Arrays in Windows PowerShell erstellt und dann wesentliche Funktionen verwendet, um sie zu manipulieren.

Verwendung von Arrays in Windows PowerShell

Arrays in Windows PowerShell können ein oder mehrere Elemente enthalten. Ein Array kann eine Zeichenfolge, eine Ganzzahl, ein Objekt oder ein anderes Array sein.

Jedes Element hat einen Index, der bei 0 beginnt und pro Element iteriert.

Die grundlegende Syntax zur Erstellung eines Arrays ist @().

$data = @()

Wir können Werte innerhalb der Klammern nach dem @ setzen:

$data = @('Zero', 'One', 'Two', 'Three')

Um Elemente im Array anzuzeigen, können wir die benannte Variable aufrufen:

$data

Ausgabe:

Zero
One
Two
Three

Zugriff auf ein Array in Windows PowerShell

Jetzt, da wir ein Array haben, möchten wir auf Elemente zugreifen. Es gibt mehrere Möglichkeiten, dies zu tun.

Die erste Methode besteht darin, den Index der Elemente im Array zu verwenden. Wie bereits erwähnt, beginnen Indizes bei 0.

Wir müssen Windows PowerShell also mitteilen, dass es das Element ansehen soll, dessen zugewiesener Index null ist, um das erste Element in unserem Array abzurufen.

$data[0]

Diese Syntax gibt die Zeichenfolge zero zurück, weil dies die erste Zeichenfolge war, die wir in unser Array gelegt haben. Wir können diesen Snippet auch erweitern, um mehrere Elemente aus dem gleichen Array zurückzugeben, indem wir mehr Indizes in dasselbe Kommando einfügen.

$data[0, 2, 3]

Ausgabe:

Zero
Two
Three

Ändern von Elementen in einem Array mit Windows PowerShell

Wir können dieselbe Methode verwenden, um die Elemente in einem Array zu aktualisieren. Um beispielsweise das Element zu aktualisieren, dessen zugewiesener Index 2 ist, können wir Folgendes ausführen:

$data[2] = 'second'

Diese Methode gibt uns direkten Zugriff auf die Elemente innerhalb eines Arrays.

Iteration über ein Array in Windows PowerShell

Eine der leistungsstärksten Funktionen von Windows PowerShell besteht darin, die gleiche Aktion auf alle Elemente in einem Array auszuführen. Die grundlegendste Methode besteht darin, ein Pipeline-Zeichen (|) zu verwenden.

Um beispielsweise jeder Zeichenfolge in unserem Array eine Beschreibung hinzuzufügen, können wir diesen Befehl verwenden:

$data | ForEach-Object { "Item: [$PSItem]" }

Dieser Befehl weist die PowerShell-Skripting-Umgebung an, die Elemente im $data-Array nacheinander zu verarbeiten.

Erstellen von Objekten in einem Array mit Windows PowerShell

Wir können ein Array voller benutzerdefinierter Objekte mit derselben Methode wie bei Zeichenfolgen unter Verwendung der Array-Funktion (@()) erstellen. Um beispielsweise eine Testliste von Mitarbeitern zu erstellen, können wir Folgendes verwenden:

$data = @(
    [pscustomobject]@{FirstName = 'Kevin'; LastName = 'Marquette' }
    [pscustomobject]@{FirstName = 'John'; LastName = 'Doe' }
)

Die meisten nativen PowerShell-Befehle geben ein Array voller Objekte dieses Typs zurück, wenn Sie ihnen eine Variable zuweisen, mit der Sie arbeiten möchten.

Zugriff auf Objekte in einem Array mit Windows PowerShell

Der Prozess, den wir zuvor durchlaufen haben, um auf einzelne Datenelemente zuzugreifen, kann ebenfalls mit Arrays verwendet werden, die Objekte enthalten.

$data[0]

Ausgabe:

FirstName LastName
-----     ----
John     Hampton

Alternativ können wir die Eigenschaften einzelner Objekte abrufen, indem wir angeben, welche Eigenschaft wir im selben Befehl aufrufen möchten.

$data[0].FirstName

Ausgabe:

John

Aktualisieren von Objekten in einem Array mit Windows PowerShell

Die genaue Syntax ermöglicht es uns, einzelne Eigenschaften innerhalb von Objekten, die in Arrays gespeichert sind, zu aktualisieren.

$data[0].FirstName = 'Jay'

Zugriff auf Eigenschaften in einem Array mit Windows PowerShell

In den meisten Programmier- und Skriptsprachen müssten wir eine iterative Methode verwenden, um auf alle Eigenschaften in verschiedenen Objekten zuzugreifen. Das können wir auch in Windows PowerShell tun.

$data | ForEach-Object { $_.LastName }

Diese Methode gibt eine Liste aller LastName-Eigenschaften in unserem Array zurück, ist jedoch rechenintensiv und schwierig zu schreiben, wenn Sie diese Daten sehen möchten. Stattdessen hat PowerShell eine Abkürzung.

$data.LastName

Und Sie werden die gleiche Liste sehen. PowerShell verarbeitet jedes Objekt der Reihe nach, wie zuvor, verbirgt jedoch diese Komplexität vor uns.

Erstellen einer ArrayList in Windows PowerShell

Das Hinzufügen von Elementen zu Arrays kann herausfordernd sein. Eine ArrayList handhabt dies jedoch eleganter, eine andere Art von Sammlung.

Wir müssen jedoch das .NET-Framework verwenden, um diesen Typ von Sammlung zu nutzen. Um eine ArrayList zu erstellen und Elemente hinzuzufügen, führen Sie Folgendes aus:

$myarray = [System.Collections.ArrayList]::new()

[void]$myArray.Add('Value')