Dies ist eine Frage, die ich ziemlich häufig bekomme, also dachte ich, einen Artikel darüber zu schreiben. Wie der Titel schon sagt, werde ich zeigen, wie Sie Elemente zu einem PowerShell-Array hinzufügen oder entfernen können, sobald es erstellt wurde.
PowerShell-Arrays
Beginnen wir mit der Definition eines Arrays, wie es aus der PowerShell-Dokumentation stammt:
Ein Array ist eine Datenstruktur, die zum Speichern einer Sammlung von Elementen ausgelegt ist., Die Elemente können vom gleichen Typ oder verschiedenen Typen sein.Ab Windows PowerShell 3.0 hat eine Sammlung von Null oder einem Objekt einige Eigenschaften von Arrays.
Das Erstellen eines Arrays in PowerShell ist wirklich einfach und höchstwahrscheinlich haben Sie es bereits getan, als Sie beispielsweise eine Liste von Benutzern aus Active Directory
$adUsers = Get-AdUser -Filter '*' -Server $adDomainController
Das obige gibt ein Array von Anzeigenobjekten zurück, die alle Benutzer enthalten, die dem verwendeten Filter entsprechen.,
Natürlich können Sie ein leeres Array mit der folgenden Syntax initialisieren
$myArray = @()# Specify object type$myArray = @()
Das Obige initialisiert ein leeres Array, das wir beispielsweise mit einer Anzeigenabfrage füllen oder statische Elemente wie dieses hinzufügen können
$myArray = (1,2,3,4,5)
Das obige Array wird elemente 1 bis 5 zu myArray Objekt Instanziieren eines neuen Objekts mit einer Länge von 5
PowerShell Elemente zu einem Array hinzufügen
Wir haben gesehen, wie Werte zu einem Array erstellt und zugewiesen werden, aber was ist, wenn wir myArray ein sechstes Element hinzufügen möchten?, Wenn Sie Folgendes versuchen
$myArray.Add(6)
Es schlägt mit der folgenden Ausnahme fehl
Die obige Ausnahme wird ausgelöst, da ein PowerShell-Array eine Sammlung fester Größe ist und der Fehler genau das anzeigt, es kann nicht erweitert werden.,
Eine gängige Lösung ist die Verwendung des Operators += wie zum Beispiel
$myArray += 6# Print array's length$myArray.length6
Bei Verwendung des Operators += Was unter der Haube passiert, ist
- PowerShell erstellt ein neues Array mit den gleichen Elementen wie das alte plus das neue Element
- PowerShell überschreibt vorhandenes Array mit dem neuen Inhalt
All dies ist für den Benutzer transparent, sodass Sie keinen Unterschied sehen.,
Elemente zu einem Array hinzufügen – Geben Sie ArrayList ein
Wenn Sie das Kopieren/Verschieben von Daten vermeiden möchten, können Sie myArray als eine dynamische ArrayList instanziieren, mit der Sie Elemente im laufenden Betrieb entfernen können
In ähnlicher Weise können Sie Elemente aus einer ArrayList wie dieser entfernen
# Will corresponding item by index$myArrayList.RemoveAt(1)
Hinweis: Die Methode Remove akzeptiert die der Wert so 1 im obigen Beispiel bezieht sich auf den Wert, nicht auf den Index des Elements.,
die Besetzung zu unterdrücken, Fügen Sie die Methode drucken neues array mit Länge
Erstellen Sie ein Array, Liste der alternativen Weg
Das oben gezeigte Beispiel nennen die New-Object-Methode instanziieren Sie ein neues ArrayList-aber dieser ist relativ teuer in Bezug auf computing-Ressourcen, so dass die oben genannten kann umgeschrieben werden als
$myArray = @()
zusätzlich wird kürzer, es hat den Vorteil der Vermeidung der negativen performance-hit des New-Object und optimieren von code ist immer eine gute Idee, besonders beim Umgang mit größeren scripts.,34f072bc0″>
Leave a Reply