Arbeiten mit Arraylisten in Windows PowerShell-Skripts

Abgeschlossen

In Ihren Skripts müssen Sie auf die Daten verweisen, die Sie in Arrays platzieren. Sie können entweder auf alle Elemente im Array gleichzeitig oder einzeln zugreifen. Zum Anzeigen aller Elemente in einem Array geben Sie den Variablennamen ein und drücken dann die EINGABETASTE, genauso wie Sie es für eine Variable mit einem einzelnen Wert tun würden.

Sie können sich auf einzelne Elemente in einem Array anhand ihrer Indexnummer beziehen. Wenn Sie ein Array erstellen, wird jedem Element eine Indexnummer zugewiesen, beginnend mit 0. Das erste Element, das im Array platziert wurde, ist also Element 0, das zweite Element im Array ist Element 1 und so weiter. Zum Anzeigen eines bestimmten Elements platzieren Sie die Indexnummer in Klammern hinter dem Variablennamen. Im folgenden Beispiel wird das erste Element in einem Array angezeigt, das in der Variable $users gespeichert ist:

$users[0] 

Sie können einem Array auch ein neues Element hinzufügen. Im folgenden Beispiel wird dem Array $user1 das in $users gespeicherte Benutzerkonto hinzugefügt:

$users = $users + $user1

Alternativ können Sie beim Hinzufügen von Elementen zu einem Array die folgende Kurznotation verwenden:

$users += $user1

Zum Ermitteln, was Sie mit den Inhalten in einem Array tun können, verwenden Sie das Cmdlet Get-Member. Leiten Sie die Inhalte des Arrays an Get-Member um, dann bezeichnen die zurückgegebenen Ergebnisse die Eigenschaften und Methoden, die Sie für die Elemente im Array verwenden können. Beispiel:

$files | Get-Member

Hinweis

Wenn Sie ein Array mit gemischten Datentypen an Get-Member umleiten, werden die Ergebnisse für jeden Datentyp zurückgegeben. Dies ist auch eine nützliche Möglichkeit, zu bestimmen, welche Datentypen im Array enthalten sind.

Zum Überprüfen der für ein Array verfügbaren Eigenschaften und Methoden anstatt der im Array enthaltenen Elemente verwenden Sie die folgende Syntax:

Get-Member -InputObject $files

Arbeiten mit Arraylisten

Der Standardtyp von Array, das Windows PowerShell erstellt, ist ein Array mit fester Größe. Dies bedeutet, dass beim Hinzufügen eines Elements zum Array das Array tatsächlich mit dem zusätzlichen Element neu erstellt wird. Wenn Sie mit relativ kleinen Arrays arbeiten, ist dies kein Problem. Wenn Sie jedoch Tausende von Elementen einzeln zu einem Array hinzufügen, hat die Neuerstellung eines Arrays bei jedem Mal negative Auswirkungen auf die Leistung. Das andere Problem beim Verwenden von Arrays mit fester Größe besteht im Entfernen von Elementen. Es gibt keine einfache Methode zum Entfernen eines Elements aus einem Array mit fester Größe.

Um die Mängel von Arrays zu beheben, können Sie eine Arrayliste verwenden. Eine Arrayliste funktioniert ähnlich wie ein Array, mit dem Unterschied, dass es keine feste Größe hat. Dies bedeutet, dass Sie Methoden zum Hinzufügen und Entfernen von Elementen verwenden können.

Verwenden Sie die folgende Syntax, um beim Zuweisen von Werten eine Arrayliste zu erstellen:

[System.Collections.ArrayList]$computers = "LON-DC1","LON-SVR1","LON-CL1"

Verwenden Sie die folgende Syntax, um eine leere Arrayliste zu erstellen, die zum Hinzufügen von Elementen bereit ist:

$computers=New-Object System.Collections.ArrayList

Wenn Sie eine Arrayliste verwenden, können Sie Methoden sowohl zum Hinzufügen als auch zum Entfernen von Elementen verwenden. Diese Methoden schlagen jedoch fehl, wenn Sie versuchen, sie auf ein Array mit fester Größe anzuwenden. Beispiel:

$computers.Add("LON-SRV2")
$computers.Remove("LON-CL1")

Hinweis

Wenn Sie ein Element aus einer Arrayliste entfernen und mehrere übereinstimmende Elemente vorhanden sind, wird nur die erste Instanz entfernt.

Wenn Sie ein Element aus einer Arrayliste auf der Grundlage der Indexnummer entfernen möchten, verwenden Sie die RemoveAt() -Methode. Beispiel:

$computers.RemoveAt(1)