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 11:53] – [Array von Objekten] henningpowershell:allgemein:array [2024/05/27 08:36] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 41: Zeile 41:
  
 Ansprechen von Objekten Ansprechen von Objekten
-<code powershell>$data[0]              # erstes Objekt ansprechen +<code powershell>$data[0]                             # erstes Objekt ansprechen 
-                 $data[0].vorname      # Eigenschaft "Vorname" des ersten Objektes ausgeben +                 $data[0].vorname                     # Eigenschaft "Vorname" des ersten Objektes ausgeben 
-                 $data.vorname         # Eigenschaft "Vorname" aller Objekte ausgaben +                 $data.vorname                        # Eigenschaft "Vorname" aller Objekte ausgaben 
-                 $data | ForEach-Object {$_.LastName} Zeilenweise alle Objekte ausgeben (bearbeiten)</code>+                 $data | ForEach-Object {$_.LastName} Zeilenweise alle Objekte ausgeben (bearbeiten)</code>
  
-==== Join - Werte in Arrays verbinden ====+==== Operationen in Arrays ==== 
 +=== Join - Werte in Arrays verbinden ===
 Über die Anweisung ''Join'' werden einzelne Werte des Arrays miteinander Verknüpft.  Über die Anweisung ''Join'' werden einzelne Werte des Arrays miteinander Verknüpft. 
 <code powershell>$data = @(1,2,3,4) <code powershell>$data = @(1,2,3,4)
 $data                 # Zeilenweise Ausgabe der Elemente $data                 # Zeilenweise Ausgabe der Elemente
 $data -join '-'       # Alle Elemente aneinandersetzen und zusammenausgeben $data -join '-'       # Alle Elemente aneinandersetzen und zusammenausgeben
-$data[0,2] -join '\'</code> +$data[0,2] -join '\'  # Elemente 1 und 3 zusammensetzen und durch einen "\" trennen (Bei Pfadangaben interessant)</code> 
- +=== contains - Suche nach einem String === 
- +Bei der Suche nach einem Muster in einem Feld wird mit "True" oder "False" ausgegeben, ob das Muster gefunden wurde. \\ 
-<code powershell></code> +Bei der Suche in einem kompletten Objekt werden die einzelnen Attribute nicht durchsucht. 
-<code powershell></code+<code powershell>$data -contains "Brot" # =False 
-<code powershell></code> +$data.nachname -contains "bro" # =True</code> 
-<code powershell></code> +=== eq - Equal ne - No Equal === 
-<code powershell></code> +Gibt alle Werte aus, die dem Suchmuster entsprechen bzw. nicht entsprechen. 
-<code powershell></code+<code powershell>$data.nachname -eq "brot" # =Brot 
-<code powershell></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> 
 +===== Array-Typen ===== 
 +==== Default: [PSObject[]] ==== 
 +Dies ist der Standard-Typ. Wird keine weitere Angabe gemacht, wird dieser Typ automatisch verwendet. Jedes Feld kann jeden Datentyp aufnehmen. 
 +==== Strongly Typed Arrays: [int[]] ==== 
 +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.1645527192.txt.gz · Zuletzt geändert: 2024/05/27 08:34 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki