Benutzer-Werkzeuge

Webseiten-Werkzeuge


powershell:allgemein:array

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
powershell:allgemein:array [2022/02/22 21:46] henningpowershell:allgemein:array [2024/05/27 08:36] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 ====== Array / Collection ====== ====== Array / Collection ======
-https://www.varonis.com/blog/powershell-array#:~:text=Arrays%20in%20PowerShell%20can%20contain,(sometimes%20confusingly)%20at%200.\\ 
 Ein Array ist eigentlich eine Sammlung von Werten in einem Datenfeld, am besten vergleichbar mit einer Tabelle, die zeilenweise Werte enthält. Enthält eine Zeile nur einen Wert (eine Spalte), dann ist es ein eindimensionales Array, sind mehrere Werte enthalten ist es ein mehrdimensionales Array. \\ Ein Array ist eigentlich eine Sammlung von Werten in einem Datenfeld, am besten vergleichbar mit einer Tabelle, die zeilenweise Werte enthält. Enthält eine Zeile nur einen Wert (eine Spalte), dann ist es ein eindimensionales Array, sind mehrere Werte enthalten ist es ein mehrdimensionales Array. \\
 Da die PowerShell von der Grundidee her ein  Werkzeug zur Bearbeitung von Objekten ist (Benutzerkonten, Maschinenkonten, Konfigurationen), findet man in Arrays häufig Objekte mit mehreren Attributen. Deshalb wird in der PowerShell nicht von Arrays, sondern von Collections gesprochen.\\ Da die PowerShell von der Grundidee her ein  Werkzeug zur Bearbeitung von Objekten ist (Benutzerkonten, Maschinenkonten, Konfigurationen), findet man in Arrays häufig Objekte mit mehreren Attributen. Deshalb wird in der PowerShell nicht von Arrays, sondern von Collections gesprochen.\\
Zeile 60: Zeile 59:
 $data.nachname -contains "bro" # => True</code> $data.nachname -contains "bro" # => True</code>
 === eq - Equal / ne - No Equal === === eq - Equal / ne - No Equal ===
-Gibt die Werte aus, die dem Suchmuster entsprechen+Gibt alle Werte aus, die dem Suchmuster entsprechen bzw. nicht entsprechen.
 <code powershell>$data.nachname -eq "brot" # => Brot <code powershell>$data.nachname -eq "brot" # => Brot
 $data.nachname -ne "brot" # => Blöd, Taler, Langstrumpf, Stern</code> $data.nachname -ne "brot" # => Blöd, Taler, Langstrumpf, Stern</code>
-<code powershell></code> +==== Arrays kombinieren ==== 
-<code powershell></code> +=== Arrays addieren === 
-<code powershell></code> +<code powershell>$first = @('Zero';'One') 
-<code powershell></code> +$second = @('Two';'Three') 
-<code powershell></code> +$first + $second  # alle Elemente beider Arrays ausgeben 
-<code powershell></code> +$first += $second # Array "First" um Array "Second" erweitern 
-<code powershell></code> +</code> 
-<code powershell></code> +===== Array-Typen ===== 
-<code powershell></code> +==== Default: [PSObject[]] ==== 
-<code powershell></code> +Dies ist der Standard-Typ. Wird keine weitere Angabe gemacht, wird dieser Typ automatisch verwendet. Jedes Feld kann jeden Datentyp aufnehmen. 
-<code powershell></code> +==== Strongly Typed Arrays: [int[]] ==== 
-<code powershell></code>+Hier wird eine Festlegung des Datentyps vorgenommen. Das kann erforderlich sein, wenn Zahlen nicht als Text erkannt werden sollen oder nachfolgende Operationen einen bestimmten, einheitlichen Datentyp erfordern. Die Eingabe eines unkorrekten Wertes führt hier zu einem Fehler. 
 +<code powershell>[int[]] $numbers = 1,2,3</code> 
 +==== ArrayList: .Net ==== 
 +Eine etwas elegantere Methode ein Array zu befüllen gibt es über .Net. Dabei wird zunächst eine ArrayList über den entsprechenden .Net-Befehl erzeugt und in einer Variablen gespeichert. Danach kann über den Standard-Befehl "Add" ein Wert hinzugefügt werden 
 +<code powershell>$myarray = [System.Collections.ArrayList]::new() 
 +[void]$myArray.Add('Value')</code>
  
 +==== Fortgeschrittene Operationen ====
 +=== Arrays mit vorbelegter Größe ===
 +Bei Anlage bereits eine Menge n an Objekten festlegen. Anstelle von Werten werden die Felder mit Nullen gefüllt. Auch ohne echte Werte gibt das Zählen der Elemente bereits die vorgegebene Anzahl aus:
 +<code powershell>$data = [Object[]]::new(4)
 +$data.count # => 4</code>
 +=== Arrays Multiplizieren ===
 +Kein rechnen, das Array wird n mal ausgeben:
 +<code powershell>$data = @('red','green','blue')
 +$data * 3</code>
 +=== Verschachtelte Arrays / nested arrays ===
 +Arrays können auch Arrays anstelle von Objekten oder Werten enthalten
 +<code powershell>$data = @(@(1,2,3),@(4,5,6),@(7,8,9))
 +$data2 = @(@(1,2,3),@(4,5,6), @(7,8,9))</code>
 +Das ansprechen eines bestimmten Wertes erfolgt über die Ansprache der einzelnen Ebenen von außen nach innen. Der Wert 3 ist der dritter Wert im ersten Array. Die Indexierung beginnt auch hier mit "0", so das der Wert wie folgt angesprochen wird:
 +<code powershell>$data2[0][2]</code>
 +[[https://www.varonis.com/blog/powershell-array | Quelle]]
powershell/allgemein/array.1645562788.txt.gz · Zuletzt geändert: 2024/05/27 08:34 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki