You are on page 1of 5

THEMA

about_Arrays
KURZBESCHREIBUNG
Beschreibt eine kompakte Datenstruktur zum Speichern von
Datenelementen
DETAILBESCHREIBUNG
Arrays sind Datenstrukturen zum Speichern einer Auflistung von
Datenelementen des gleichen Typs. Windows PowerShell untersttzt
Datenelemente wie "string", "int" (32-Bit-Ganzzahl), "long"
(64-Bit-Ganzzahl), "bool" (Boolesch), "byte" und weitere
Microsoft .NET Framework-Objekttypen.
ERSTELLEN UND INITIALISIEREN EINES ARRAYS
Weisen Sie einer Variablen mehrere Werte zu, um ein Array zu
erstellen und zu initialisieren.
Die im Array gespeicherten Werte werden durch Kommas getrennt und
durch den Zuweisungsoperator (=) vom Variablennamen getrennt.
Geben Sie z. B. Folgendes ein, um das Array "$A" zu erstellen, das die
numerischen Werte (int) 22, 5, 10, 8, 12, 9, 80 enthlt:
$A = 22,5,10,8,12,9,80
Sie knnen ein Array auch mithilfe des Bereichsoperators (..)
erstellen und initialisieren. Beispiel: Das Array "$B" mit den
Werten 5 bis 8 wird mit folgendem Befehl erstellt und initialisiert:
$B = 5..8
Das Array "$B" enthlt nun die vier Werte 5, 6, 7 und 8.
Wenn kein Datentyp angegeben wird, erstellt Windows PowerShell
jedes Array als Objektarray (Typ: "object[]"). Sie knnen den
Datentyp eines Arrays mit der GetType()-Methode bestimmen. Der
Datentyp des Arrays "$a" wird beispielsweise wie folgt bestimmt:
$a.gettype()
Wenn Sie ein stark typisiertes Array erstellen mchten, d. h. ein
Array, das nur Werte eines bestimmten Typs enthalten darf,
wandeln Sie die Variable als Arraytyp um, z. B. string[], long[]
oder int32[]. Zum Umwandeln eines Arrays geben Sie zuerst den
Arraytyp in Klammern und anschlieend den Variablennamen ein. Ein
32-Bit-Ganzzahlarray mit dem Namen "$ia", das die ganzen Zahlen
1500, 2230, 3350 und 4000 enthlt, erstellen Sie beispielsweise
wie folgt:
[int32[]]$ia = 1500,2230,3350,4000
Das Array "$ia" kann nun ausschlielich ganze Zahlen enthalten.
Sie knnen Arrays erstellen, die in jeden von .NET Framework
untersttzten Typ umgewandelt werden knnen. Beispielsweise
besitzen die von "Get-Process" zur Darstellung von Prozessen
abgerufenen Objekte den Typ "System.Diagnostics.Process". Ein
stark typisiertes Array mit Prozessobjekten erstellen Sie mit
folgendem Befehl:
[Diagnostics.Process[]]$zz = Get-Process
Arrays knnen mit der Ausgabe eines Cmdlets, einer Funktion oder einer
Anweisung aufgefllt werden. Durch die folgende Anweisung wird z. B.
ein Array mit den Prozessen erstellt, deren Name mit den Buchstaben
"co" beginnt und die auf dem aktuellen Computer ausgefhrt werden:
$LocalProcesses = get-process co*
Wenn von der Anweisung nur ein einziger Prozess abgerufen wird,
stellt die $LocalProcesses-Variable kein Array dar. Um
sicherzustellen, dass mit dem Befehl ein Array erstellt wird,
verwenden Sie den Arrayteilausdruckoperator (@), wie im folgenden
Beispiel veranschaulicht:
$LocalProcesses = @(get-process co*)
Selbst wenn vom Befehl ein einziger Prozess zurckgegeben wird,
ist die $LocalProcesses-Variable ein Array. Auch wenn das Array
ber nur ein Element verfgt, kann es wie jedes andere Array behandelt
werden. Dem Array knnen beispielsweise weitere Objekte hinzugefgt
werden. Weitere Informationen finden Sie unter "about_Operators".

LESEN EINES ARRAYS
Sie knnen auf ein Array mithilfe des entsprechenden
Variablennamens wie "$A" oder "$a" verweisen. Windows PowerShell
unterscheidet nicht zwischen Gro- und Kleinschreibung.
Wenn Sie alle Elemente im Array anzeigen mchten, geben Sie den
Namen des Arrays ein. Beispiel:
$a
Sie knnen auf die Elemente in einem Array verweisen, indem Sie
einen Index beginnend mit der Position 0 verwenden. Schlieen Sie
die Indexnummer in Klammern ein. Wenn Sie beispielsweise das erste
Element im Array "$a" anzeigen mchten, geben Sie Folgendes ein:

$a[0]
Um das dritte Element im Array "$a" anzuzeigen, geben Sie
Folgendes ein:
$a[2]
Bei negativen Zahlen beginnt die Zhlung am Ende des Arrays. "-1"
bezieht sich demzufolge auf das letzte Element des Arrays. Die
letzten drei Elemente des Arrays werden daher mit folgendem
Befehl angezeigt:
$a[-3..-1]
Diese Notation sollte jedoch mit Bedacht verwendet werden.
$a[0..-2]
Dieser Befehl bezieht sich nicht auf alle Elemente des Arrays mit
Ausnahme des letzten.
Diese Notation bezieht sich auf das erste sowie das letzte und
das vorletzte Element im Array.

Sie knnen mithilfe des Bereichsoperators eine Teilmenge aller
Werte im Array anzeigen. Wenn Sie beispielsweise die
Datenelemente an der Indexposition 1 bis 3 anzeigen mchten,
geben Sie Folgendes ein:
$a[1..3]
Mit dem Plus-Operator (+) knnen Sie einen Bereich mit einer
Liste von Elementen in einem Array verbinden. Wenn Sie
beispielsweise die Datenelemente an den Indexpositionen 0 und 2
sowie 4 bis 6 anzeigen mchten, geben Sie Folgendes ein:
$a[0,2+4..6]
Um die Anzahl der Elemente in einem Array zu bestimmen,
kombinieren Sie den Bereich mit der length-Eigenschaft eines
Arrays. Wenn Sie beispielsweise die Elemente von der
Indexposition 2 bis zum Ende des Arrays anzeigen mchten, geben
Sie Folgendes ein:
$a[2..($a.length-1)]
Die Lnge wird auf -1 festgelegt, da der Index an der Position 0
beginnt. In einem aus drei Elementen bestehenden Array (1,2,3)
ist der Index des dritten Elements daher 2, d. h. die Lnge des
Arrays minus eins.
Sie knnen auf Elemente in einem Array auch mit Schleifen-
konstrukten wie Foreach-, For- und While-Schleifen verweisen.
Wenn Sie beispielsweise die Elemente im Array "$a" mit einer
Foreach-Schleife anzeigen mchten, geben Sie Folgendes ein:
foreach ($element in $a) {$element}
Die Foreach-Schleife durchluft das Array und gibt alle Werte im
Array zurck, bis das Ende des Arrays erreicht ist.
Mithilfe einer For-Schleife knnen Zhler whrend der berprfung
von Elementen in einem Array erhht werden. Wenn Sie
beispielsweise jeden zweiten Wert in einem Array mit einer
For-Schleife abrufen mchten, geben Sie Folgendes ein:
for ($i = 0; $i -le ($a.length - 1); $i += 2) {$a[$i]}
Mit einer While-Schleife knnen Sie die Elemente in einem Array
anzeigen, bis eine festgelegte Bedingung nicht mehr zutrifft. Wenn Sie
beispielsweise die Elemente im Array "$a" bei einem kleineren
Arrayindex als 4 anzeigen mchten, geben Sie Folgendes ein:
$i=0
while($i -lt 4) {$a[$i]; $i++}
Sie knnen sich anhand des InputObject-Parameters des Cmdlets
"Get-Member" mit den Eigenschaften und Methoden eines Arrays wie
der Length-Eigenschaft und der SetValue-Methode vertraut machen.
Wenn Sie ein Array ber die Pipeline an "Get-Member" bergeben,
werden die Informationen ber die Objekte im Array angezeigt.
Wenn Sie den InputObject-Parameter verwenden, werden
Informationen ber das Array angezeigt.
Um die Eigenschaften und Methoden des Arrays "$a" zu ermitteln,
geben Sie Folgendes ein:
get-member -inputobject $a
BEARBEITEN EINES ARRAYS
Sie knnen die Elemente in einem Array ndern, Elemente
hinzufgen und Werte aus zwei Arrays in einem dritten Array
kombinieren.
Wenn Sie den Wert eines bestimmten Elements in einem Array ndern
mchten, geben Sie den Namen des Arrays und den Index des zu
ndernden Elements an. Geben Sie anschlieend mit dem
Zuweisungsoperator (=) einen neuen Wert fr das Element an. Wenn
Sie beispielsweise den Wert des zweiten Elements im Array "$a"
(Indexposition 1) in 10 ndern mchten, geben Sie Folgendes ein:
$a[1] = 10
Sie knnen mit der SetValue-Methode eines Arrays auch Werte ndern. Im
folgenden Beispiel wird der zweite Wert (Indexposition 1) des Arrays
"$a" in 500 gendert:
$a.SetValue(500,1)
Sie knnen an ein vorhandenes Array mit dem Operator "+=" ein
Element anfgen.
Mit diesem Operator kann auch zu einem vorhandenen Wert addiert
werden. Wenn der Operator fr das Element eines Arrays verwendet
wird, wird der Wert des Elements erhht. Wenn der Operator fr
das Array selbst verwendet wird, wird der Wert angefgt. Wenn Sie
beispielsweise an das Array "$a" ein Element mit dem Wert 200
anfgen mchten, geben Sie Folgendes ein:
$a += 200
Die Elemente eines Arrays knnen nicht ohne Weiteres gelscht
werden. Sie knnen jedoch ein neues Array erstellen, das nur die
ausgewhlten Elemente eines vorhandenen Arrays enthlt. Wenn Sie
beispielsweise das Array "$t" mit allen Elementen im Array "$a",
jedoch ohne den Wert an der Indexposition 2 erstellen mchten,
geben Sie Folgendes ein:
$t = $a[0,1 + 3..($a.length - 1)]
Sie knnen zwei Arrays mit dem Plus-Operator (+) zu einem Array
zusammenfhren. Im folgenden Beispiel werden zwei Arrays erstellt und
zusammengefhrt. Anschlieend wird das zusammengefhrte Array angezeigt.
$x = 1,3
$y = 5,9
$z = $x + $y
Das Array "$z" enthlt nun die Werte 1, 3, 5 und 9.
Um ein Array zu lschen, knnen Sie mit dem Cmdlet "Remove-Item"
die Variable lschen, die das Array enthlt. Mit dem folgenden
Befehl wird das Element "a" in der Variablen "drive" angegeben.
remove-item variable:a
(Weitere Informationen ber die Variable "drive" finden Sie im
Hilfethema zum Variablenanbieter.)
SIEHE AUCH
about_Assignment_Operators
about_Hash_Tables
about_Operators
about_For
about_Foreach
about_While