Startseite » PowerShell » Array-Listen in PowerShell verwenden

Array-Listen in PowerShell verwenden

Ein grosser Vorteil von Array-Listen gegenüber von Arrays ist, dass man Werte an spezifischen Positionen hinzufügen und entfernen kann. Array-Listen sind standardmässig nicht schreibgeschützt. 

So erstellt man eine Array-Liste:

[System.Collections.ArrayList]$arrayList = @()

Einer Array-Liste Werte hinzufügen:

# Einen Wert hinzugefügen:
$arrayList.Add(1)

# Einen String hinzufügen:
$arrayList.Add("helloworld")

# Mehrere Werte hinzufügen:
$arrayList.Add((2, 3, 4, 5))

# Man kann auch mehrere Werte mithilfe einer anderer Array-Liste oder einem Array hinzufügen:
$array = @(2,3,4,5)
$arrayList.Add($array)

Einen Wert an einer spezifischen Position hinzufügen:

# Hier wird an der Indexposition 5 der Wert 6 hinzugefügt
$arrayList.Insert(5,6)

Überprüfen, ob ein definierter Wert in der Liste vorhanden ist:

# WICHTIG: Der Output dieses Befehls ist ein Boolean
$arrayList.Contains("3")

Einen definierten Wert aus der Array-Liste entfernen:

# WICHTIG: Falls die Liste den Wert 3 mehrfach enthält, wird lediglich der erste Wert in der Liste entfernt
$arrayList.Remove(3)

Einen definierten Wert komplett aus der Liste löschen:

# Array-Liste erstellt
[System.Collections.ArrayList]$arrayList = @(1,2,3,3,3,4,3,5)

# Nummer, welche entfernt werden soll definieren (geht auch mit Strings)
$numberToRemove = 3

# Der zu entfernende Wert wird solange entfernt, bis er nicht mehr vorhanden ist
do{
    
    $arrayList.Remove($numberToRemove)

}until($arrayList.Contains($numberToRemove) -eq $false)

Einen beliebigen Wert an einer definierten Indexposition entfernen:

# Der Wert an Indexposition 5 wird entfernt
$arrayList.RemoveAt(5)

Weitere nützliche Infos:

# Indexposition 4 anzeigen
$arrayList[4]

# Indexposition eines Wertes anzeigen
[System.Collections.ArrayList]$arrayList = @(1,2,3,4,5)
$arrayList.IndexOf(4)

# Listengrösse anzeigen
$arrayList.Count

# Eigenschaft einer Array-Liste abrufen (Boolean Output)
$arrayList.IsReadOnly
$arrayList.IsFixedSize
$arrayList.IsSynchronized

# Schreibschutz hinzufügen
$arrayListReadOnly = [System.Collections.ArrayList]::ReadOnly($$arrayListReadOnly)

# Maximale Grösse definieren
$arrayListFixed = [System.Collections.ArrayList]::FixedSize($$arrayListFixed)

# Synchronisierte Array-Liste erstellen
$arrayListSynched = [System.Collections.ArrayList]::Synchronized($arrayList)

# Liste umkehren
$arrayList.Reverse()
Foto des Autors
Autor

Ishaq Hotait

I have over four years of professional experience as a Systems Engineer. My daily work consists of participating in the implementation of projects as well as providing operational support. I have been able to carry out such projects in large companies with round about 16'000 employees. Here are some of the technologies I need in my daily work: PowerShell, SCCM, Intune, Autopilot, Azure AD, AD, DNS, GPO

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.