Freigeben über


about_Arrays

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 unterstützt 
    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 enthält:

        $A = 22,5,10,8,12,9,80

    Sie können 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" enthält nun die vier Werte 5, 6, 7 und 8.

    Wenn kein Datentyp angegeben wird, erstellt Windows PowerShell 
    jedes Array als Objektarray (Typ: "object[]"). Sie können 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 möchten, 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 anschließend den Variablennamen ein. Ein 
    32-Bit-Ganzzahlarray mit dem Namen "$ia", das die ganzen Zahlen 
    1500, 2230, 3350 und 4000 enthält, erstellen Sie beispielsweise 
    wie folgt:

        [int32[]]$ia = 1500,2230,3350,4000

    Das Array "$ia" kann nun ausschließlich ganze Zahlen enthalten.

    Sie können Arrays erstellen, die in jeden von .NET Framework 
    unterstützten Typ umgewandelt werden können. 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 können mit der Ausgabe eines Cmdlets, einer Funktion oder einer 
    Anweisung aufgefüllt 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 ausgeführt 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 zurückgegeben wird, 
    ist die $LocalProcesses-Variable ein Array. Auch wenn das Array 
    über nur ein Element verfügt, kann es wie jedes andere Array behandelt 
    werden. Dem Array können beispielsweise weitere Objekte hinzugefügt 
    werden. Weitere Informationen finden Sie unter "about_Operators".

 
LESEN EINES ARRAYS
    Sie können 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 möchten, geben Sie den 
    Namen des Arrays ein. Beispiel:

    $a

    Sie können auf die Elemente in einem Array verweisen, indem Sie 
    einen Index beginnend mit der Position 0 verwenden. Schließen Sie 
    die Indexnummer in Klammern ein. Wenn Sie beispielsweise das erste
    Element im Array "$a" anzeigen möchten, 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 Zählung 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 können mithilfe des Bereichsoperators eine Teilmenge aller 
    Werte im Array anzeigen. Wenn Sie beispielsweise die 
    Datenelemente an der Indexposition 1 bis 3 anzeigen möchten, 
    geben Sie Folgendes ein:

        $a[1..3]

    Mit dem Plus-Operator (+) können 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 möchten, 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 möchten, geben 
    Sie Folgendes ein:

        $a[2..($a.length-1)]

    Die Länge 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 Länge des 
    Arrays minus eins.


    Sie können 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 möchten, geben Sie Folgendes ein: 

        foreach ($element in $a) {$element}

    Die Foreach-Schleife durchläuft das Array und gibt alle Werte im 
    Array zurück, bis das Ende des Arrays erreicht ist.

    Mithilfe einer For-Schleife können Zähler während der Überprüfung 
    von Elementen in einem Array erhöht werden. Wenn Sie 
    beispielsweise jeden zweiten Wert in einem Array mit einer 
    For-Schleife abrufen möchten, geben Sie Folgendes ein:

        for ($i = 0; $i -le ($a.length - 1); $i += 2) {$a[$i]}

    Mit einer While-Schleife können 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 möchten, geben Sie Folgendes ein:

        $i=0
        while($i -lt 4) {$a[$i]; $i++}

    Sie können 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 können die Elemente in einem Array ändern, Elemente 
    hinzufügen und Werte aus zwei Arrays in einem dritten Array 
    kombinieren.

    Wenn Sie den Wert eines bestimmten Elements in einem Array ändern 
    möchten, geben Sie den Namen des Arrays und den Index des zu 
    ändernden Elements an. Geben Sie anschließend mit dem 
    Zuweisungsoperator (=) einen neuen Wert für das Element an. Wenn 
    Sie beispielsweise den Wert des zweiten Elements im Array "$a" 
    (Indexposition 1) in 10 ändern möchten, geben Sie Folgendes ein:

        $a[1] = 10

    Sie können mit der SetValue-Methode eines Arrays auch Werte ändern. Im 
    folgenden Beispiel wird der zweite Wert (Indexposition 1) des Arrays 
    "$a" in 500 geändert:

        $a.SetValue(500,1)

    Sie können an ein vorhandenes Array mit dem Operator "+=" ein 
    Element anfügen.
    Mit diesem Operator kann auch zu einem vorhandenen Wert addiert 
    werden. Wenn der Operator für das Element eines Arrays verwendet 
    wird, wird der Wert des Elements erhöht. Wenn der Operator für 
    das Array selbst verwendet wird, wird der Wert angefügt. Wenn Sie 
    beispielsweise an das Array "$a" ein Element mit dem Wert 200 
    anfügen möchten, geben Sie Folgendes ein:

        $a += 200

    Die Elemente eines Arrays können nicht ohne Weiteres gelöscht 
    werden. Sie können jedoch ein neues Array erstellen, das nur die 
    ausgewählten Elemente eines vorhandenen Arrays enthält. Wenn Sie 
    beispielsweise das Array "$t" mit allen Elementen im Array "$a", 
    jedoch ohne den Wert an der Indexposition 2 erstellen möchten, 
    geben Sie Folgendes ein:

        $t = $a[0,1 + 3..($a.length - 1)]

    Sie können zwei Arrays mit dem Plus-Operator (+) zu einem Array 
    zusammenführen. Im folgenden Beispiel werden zwei Arrays erstellt und 
    zusammengeführt. Anschließend wird das zusammengeführte Array angezeigt.

        $x = 1,3
        $y = 5,9
        $z = $x + $y

    Das Array "$z" enthält nun die Werte 1, 3, 5 und 9.

    Um ein Array zu löschen, können Sie mit dem Cmdlet "Remove-Item" 
    die Variable löschen, die das Array enthält. 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