PowerShell-Variablen und Arrays

0 Comments

Im vorherigen Artikel mit dem Namen PowerShell Scripting Tutorial for Beginners haben wir untersucht, wie man mit der PowerShell-Konsole Skripte ausführt, und gelernt, was Cmdlets sind, wie man ihre Eigenschaften erhält und wie man Pipes verwendet, um Daten von einem Cmdlet an ein anderes zu übergeben.

In diesem Artikel werden wir zu Variablen und Arrays übergehen, einschließlich dessen, was sie sind und wie wir sie erstellen, entfernen und ändern können.,i>Variablen auflisten

  • Variable setzen
  • Variable abrufen
  • Variable drucken
  • Variable löschen
  • Variable entfernen
  • PowerShell-Arrays
    • Array-Liste
    • Array-Index
    • Mehrdimensionale Arrays
  • PowerShell-Array-Beispiele
    • Array sortieren
    • Add to array
    • Array length
    • Remove item from array
    • Array contains
    • Clear array
    • Print array
    • Loop through an array
  • PowerShell Variables

    A variable is a unit of memory in which values are stored., Eine Variable in PowerShell beginnt mit “ $ “ (Dollarzeichen) und ihr Name kann beliebige Buchstaben, Zahlen und Unterstriche enthalten. Um einer Variablen einen Wert zuzuweisen, verwenden wir den Operator“=“. Um den Wert einer Variablen anzuzeigen, geben Sie einfach die Variable ein.,

    Wenn Sie einer Zeichenfolge eine Nummer hinzufügen, wird die Nummer automatisch zu einer Zeichenfolge:

    $var1 = "Netwrix"$var2 = 2018$var3 = $var1 + $var2$var3

    Variablentypen

    Der PowerShell-Variablentyp wird automatisch basierend auf dem Wert festgelegt, den Sie ihm zuweisen, aber Sie können den Typ auch manuell zuweisen:

    Um herauszufinden, welcher Typ eine Variable ist, verwenden wir den Parameter „GetType ()“:

    $var1 = "Netwrix"$var1.GetType().FullName

    Wie wir sehen können, var1 Variable hat das „System.,String“ – Typ.

    Hier sind Beschreibungen aller PowerShell-Variablentypen:

    Sie haben wahrscheinlich bereits verstanden, dass Sie nicht nur einen bestimmten Wert in die Variable schreiben und das Klassensystem bemerken können.Objekt in der Tabelle. In diese Variable können Sie die Ausgabe eines beliebigen Cmdlets schreiben.

    Variablenbereich

    Der Variablenbereich in PowerShell kann entweder lokal oder global sein. Standardmäßig hat eine Variable einen lokalen Bereich., Eine Variable wird durch ihren aktuellen Bereich begrenzt; Beispielsweise kann eine lokale Variable in einer aktuellen Funktion oder einem aktuellen Skript verfügbar sein, während eine globale Variable während der aktuellen PowerShell-Sitzung aktiv ist. Um eine globale Variable zu bezeichnen, verwenden Sie das Format $Global: variable = value, wie im folgenden Befehl dargestellt:

    $Global:var4 = 12

    Beispiele für PowerShell-Variablen

    Variablen auflisten

    Führen Sie den Befehl ls variable:* aus, um alle aktuell verfügbaren Variablen aufzulisten., Hier ist ein Beispiel für die Ausgabe:

    Variable setzen

    Sie können eine Variable erstellen, indem Sie ihr einfach einen Wert zuweisen. Beispielsweise erstellt der Befehl $var4 = „variableexample“ eine Variable mit dem Namen $var4 und weist ihr einen Zeichenfolgenwert zu. Die doppelten Anführungszeichen ( „“ ) geben an, dass der Variablen ein Zeichenfolgenwert zugewiesen wird.

    Get variable

    Dies ist dem Befehl list variable sehr ähnlich, nur mit einem anderen Cmdlet:

    Get-Variable | Out-String

    Print variable

    Sie können eine Variable a ausgeben .txt, .csv oder HTML-Datei.

    Zu schreiben, um ein .,txt-datei, verwenden sie die Out-File befehl:

    $var5 = "Hello World!"$var5 | Out-File C:\scripts\Hello_World.txt

    Zu exportieren daten zu einem .,“d2d13912ee“>

    Und um in eine HTML-Datei zu schreiben, verwenden Sie den Befehl ConvertTo-Html:

    $var6 = Get-Process$var6 | ConvertTo-Html -Property Name, Path > C:\scripts\processes.html

    Um eine Datei zu lesen, die wir exportiert haben, verwenden wir das Cmdlet Get-Content:

    Get-Content C:\scripts\processes.csv

    Variable löschen

    Um den Inhalt einer Variablen zu löschen, verwenden Sie das Cmdlet“Variable löschen“:

    Clear-Variable -name var6 #without $

    Variable entfernen

    Um eine Variable vollständig zu entfernen, verwenden Sie das Cmdlet „Variable entfernen“:

    Remove-Variable -name var6 #without $

    PowerShell-Arrays

    Ein Array ist ein Typ einer Variablen., Es ist eine Reihe von Komponenten (Array-Elemente), die in einer bestimmten Reihenfolge angeordnet sind. Elemente des Arrays werden nacheinander nummeriert, und Sie greifen mit seiner Indexnummer auf ein Element zu.

    Beachten Sie beim Erstellen von Arrays das standardmäßige PowerShell-Verhalten. Wenn Sie ein Array mit mehreren Elementen erstellen, erstellt PowerShell ein Array, wie Sie es beabsichtigen. Fügen Sie beispielsweise einige Zahlen in ein Array ein und überprüfen Sie dann den Datentyp der Variablen:

    $array1 = 1, 2, 3$array1.GetType()

    Wie Sie sehen, hat PowerShell in diesem Fall ein Array erstellt (System.Array).,

    Wenn Sie jedoch nur einen Wert in eine Variable einfügen, erstellt PowerShell kein Array:

    $array1 = 1$array1.GetType()

    Natürlich können Sie nicht immer im Voraus sagen, wie viele Objekte als Ergebnis der Ausführung eines bestimmten Befehls empfangen werden.

    Sie können dies auf viele Arten tun. Sie können beispielsweise den Operator „,“ verwenden. Wenn ein Komma als binärer Operator verwendet wird, wird ein normales Array erstellt; Wenn es als unärer Operator verwendet wird, hat das Array nur ein Element., Zum Beispiel, hier ist, wie können wir erhalten ein array, bestehend aus einem element:

    $array1 = ,1$array1.GetType()

    Alternativ können Sie explizit den Datentyp für eine variable:

    ]$array1 = 1$array1.GetType()

    Schließlich können Sie auch ein array erstellen mit Teilausdruck operator „@“, Formen, die ein array auch wenn keine Objekte sind angegeben. Es ist sehr praktisch, eine Variable als Array zu initialisieren und dann Objekte hinzuzufügen, ohne sich Gedanken über ihre Anzahl zu machen.,

    $array3 = @()$array3.GetType()

    Beachten Sie, dass jedes Element eines Arrays einen eigenen Datentyp hat und Sie mit dem Typobjekt beliebige Werte zum Array hinzufügen können. Bei Bedarf können Sie die Mitglieder des Arrays auf einen bestimmten Datentyp beschränken — dann erstellen Sie ein „typisiertes Array“., Sie können beispielsweise angeben, dass Array-Elemente ganzzahlige Werte sein müssen:

    ]$array1 = 1$array1.GetType()

    Und so definieren wir Systemprozesse als Array-Mitglieder:

    ]$array1 = Get-Process$array1.GetType()

    Array List

    Wenn Sie ein Array häufig ändern oder durchsuchen möchten, können Sie die ArrayList-Klasse verwenden, die entwickelt, damit Sie Elemente einfach hinzufügen, entfernen und suchen können:

    $array3 = New-Object System.Collections.ArrayList

    Array Index

    Ein Index im Array ist ein Wert, normalerweise eine numerische Ganzzahl, mit der ein Array-Element identifiziert und referenziert wird., Array-Indizes beginnen je nach Programmiersprache entweder bei Null oder eins. Windows PowerShell-Arrays sind nullbasiert, um also auf das erste Element des Arrays $var3 („Element Null“) zu verweisen, würden Sie $var3 schreiben .

    $var3 = "first", "second", "third"

    Mehrdimensionale Arrays

    Mehrdimensionale Arrays sind Variablen, mit denen Informationen in einer Tabelle gespeichert werden können, ohne sie in eine echte Datenbank schreiben zu müssen. Es sieht aus wie eine Hash-Tabelle, kann jedoch verschiedene Arten von Informationen wie Zeichenfolgen und Ganzzahlen speichern., Tatsächlich können Sie sich ein mehrdimensionales Array als Tabelle mit Spalten und Zeilen vorstellen, in der jede Zelle ihren eigenen Index in einer PowerShell-Umgebung hat.

    PowerShell Array Examples

    Array sortieren

    Wenn ein Array nur einen Datentyp enthält, können Sie die Werte mit der Sortiermethode sortieren:

    $array3 | Sort

    Um ein Array mit mehr als einem Datentyp zu sortieren, müssen Sie das Sortierobjekt-Cmdlet verwenden.,

    Zum Array hinzufügen

    Erstellen wir zunächst ein Array:

    $array5 = "one", "two", "three", "four", "five"$array5.gettype()

    Um unser Array einfach zu ändern, müssen wir es der Arraylist-Sammlung hinzufügen:

    $ArrayList1 = $array5$ArrayList1.GetType()

    Wie Sie sehen, hat sich der Basistyp geändert und wir können unser Array jetzt einfach ändern:

    $ArrayList1.Add("six")$ArrayList1.Remove("three")$ArrayList1

    Array length

    Um die Anzahl der Elemente im Array zurückzugeben, verwenden Sie die .,längenparameter:

    $array6 = 1,2,3,4,5,6echo $array6.Length

    Element aus Array entfernen

    Um ein Element zu entfernen, verwenden Sie die .Befehl entfernen., Auch hier ist es besser, eine Arraylist zu verwenden:

    $ArrayList1 = $array5$ArrayList1.GetType()$ArrayList1.Remove("three")$ArrayList1

    Array enthält

    Wenn Sie sehen möchten, ob eines der Elemente in einem Array einen bestimmten Wert enthält, verwenden Sie die Methode Contains:

    Array löschen

    Obwohl die meisten Array-Operationen in PowerShell relativ einfach durchzuführen sind, gibt es keine einfache Möglichkeit, ein Array zu löschen., Der einfachste Weg, ein ganzes Array loszuwerden, besteht darin, die Variable $null zuzuweisen:

    $array7 = $null$array7

    Um zu überprüfen, ob unser Array null ist, führen Sie das folgende Skript aus:

    $array7 -eq $null

    Wenn eine Variable null ist, können Sie in PowerShell keine Methoden darauf anwenden.

    Print Array

    Um ein ganzes Array zu drucken, können wir die gleichen Methoden zum Drucken von Variablen beschrieben verwenden.

    Zu schreiben, um ein .txt-datei, verwenden sie die Out-File befehl:

    $var5 | Out-File C:\scripts\array.txt

    Zu exportieren .,csv-Datei verwenden Sie den Befehl Export-Csv:

    $var6 | Export-Csv -Path C:\scripts\array.csv

    Und um in eine HTML-Datei zu schreiben, verwenden Sie den Befehl ConvertTo-Html:

    $var6 | ConvertTo-Html > C:\scripts\processes.html

    Schleife durch ein Array

    Um jedes Element in einem Array nacheinander zu behandeln, müssen wir eine Schleife mit dem foreach-Operator foreach. Wenn wir beispielsweise ein String-Array deklarieren und die Länge jedes Wortes im Array zählen möchten, sollten wir das folgende Skript ausführen:

    $array8 = @("Earth","Mercury","Venus","Jupiter","Saturn","Mars", "Neptune", "Pluto") foreach ($array in $array8) { "$array = " + $array.length }

    In diesem Artikel haben wir mehr über Variablen und ihre Typen erfahren., Dann haben wir einen Variablentyp — das Array— im Detail untersucht und gelernt, damit zu spielen. Mit diesen Informationen sind Sie bereit, noch tiefer in PowerShell einzutauchen.

    Jeff ist der Direktor der Global Solutions Engineering bei Netwrix. Er ist ein langjähriger Netwrix Blogger, Sprecher und Moderator. Im Netwrix-Blog teilt Jeff Lifehacks, Tipps und Tricks mit, die Ihre Systemadministrationserfahrung dramatisch verbessern können.


    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.