Startseite » wie man » Geek School Lernen von PowerShell-Variablen, Eingabe und Ausgabe

    Geek School Lernen von PowerShell-Variablen, Eingabe und Ausgabe

    Wenn wir uns nicht mehr nur mit Befehlen befassen und vollständige Skripts schreiben, benötigen Sie einen temporären Speicherplatz für Daten. Hier kommen Variablen ins Spiel.

    Lesen Sie unbedingt die vorherigen Artikel der Serie:

    • Erfahren Sie, wie Sie Windows mit PowerShell automatisieren
    • Verwenden von Cmdlets in PowerShell
    • Informationen zum Verwenden von Objekten in PowerShell
    • Lernen Sie das Formatieren, Filtern und Vergleichen in PowerShell
    • Informationen zum Verwenden von Remoting in PowerShell
    • Verwenden von PowerShell zum Abrufen von Computerinformationen
    • Arbeiten mit Sammlungen in PowerShell

    Und bleiben Sie die ganze Woche für den Rest der Serie dran.

    Variablen

    Die meisten Programmiersprachen erlauben die Verwendung von Variablen, die einfach Container sind, die Werte enthalten. In PowerShell haben auch wir Variablen, die sehr einfach zu bedienen sind. So erstellen Sie eine Variable namens "FirstName" und geben den Wert "Taylor" an.

    $ FirstName = "Taylor"

    Das erste, was die meisten Leute zu fragen scheinen, ist, warum wir den Variablennamen mit einem Dollarzeichen versehen, und das ist eigentlich eine sehr gute Frage. Tatsächlich ist das Dollarzeichen nur ein kleiner Hinweis auf die Shell, dass wir auf den Inhalt der Variablen zugreifen möchten (denken Sie daran, was sich im Container befindet) und nicht auf den Container selbst. In PowerShell enthalten Variablennamen kein Dollarzeichen. Dies bedeutet, dass der Variablenname im obigen Beispiel tatsächlich „FirstName“ ist..

    In PowerShell können Sie alle Variablen sehen, die Sie in der Variablen PSDrive erstellt haben.

    gci variable:

    Sie können also jederzeit eine Variable aus der Shell löschen:

    Remove-Item-Variable: \ Vorname

    Variablen müssen auch kein einzelnes Objekt enthalten. Sie können auch mehrere Objekte in einer Variablen speichern. Wenn Sie beispielsweise eine Liste der laufenden Prozesse in einer Variablen speichern möchten, können Sie ihr einfach die Ausgabe von Get-Process zuweisen.

    $ Proc = Get-Process

    Um dies zu verstehen, muss man daran denken, dass die rechte Seite des Gleichheitszeichens immer zuerst ausgewertet wird. Dies bedeutet, dass Sie auf der rechten Seite eine gesamte Pipeline haben können, wenn Sie möchten.

    $ CPUHogs = Get-Process | CPU sortieren - absteigend | Wählen Sie zuerst 3 aus

    Die CPUHogs-Variable enthält jetzt die drei laufenden Prozesse mit der meisten CPU.

    Wenn Sie über eine Variable verfügen, die eine Sammlung von Objekten enthält, müssen Sie einige Dinge beachten. Wenn Sie beispielsweise eine Methode für die Variable aufrufen, wird sie für jedes Objekt in der Auflistung aufgerufen.

    $ CPUHogs.Kill ()

    Das würde alle drei Prozesse in der Sammlung töten. Wenn Sie auf ein einzelnes Objekt in der Variablen zugreifen möchten, müssen Sie es wie ein Array behandeln.

    $ CPUHogs [0]

    Dadurch erhalten Sie das erste Objekt in der Sammlung.

    Lass dich nicht erwischen!

    Variablen in PowerShell sind standardmäßig schwach typisiert, was bedeutet, dass sie beliebige Daten enthalten können. Dies scheint neue Leute bei PowerShell zu erwischen!

    $ a = 10

    $ b = '20'

    Wir haben also zwei Variablen, eine enthält eine Zeichenfolge und die andere eine Ganzzahl. Was passiert also, wenn Sie sie hinzufügen? Es hängt tatsächlich davon ab, in welcher Reihenfolge Sie sie hinzufügen.

    $ a + $ b = 30

    Während

    $ b + $ a = 2010

    Im ersten Beispiel ist der erste Operand eine Ganzzahl, $ a. PowerShell denkt, dass Sie versuchen, Mathematik auszuführen, und versucht daher, alle anderen Operanden in Ganzzahlen zu konvertieren. Im zweiten Beispiel ist der erste Operand jedoch eine Zeichenfolge, daher konvertiert PowerShell den Rest der Operanden einfach in Zeichenfolgen und verkettet sie. Fortgeschrittene Skripter verhindern diese Art von "getcha", indem sie die Variable in den Typ umwandeln, den sie erwarten.

    [int] $ number = 5
    [int] $ Number = '5'

    Das Obige führt dazu, dass die Number-Variable ein ganzzahliges Objekt mit einem Wert von 5 enthält.

    Eingabe und Ausgabe

    Da PowerShell automatisiert werden soll, sollten Sie möglichst vermeiden, dass Benutzer Informationen einholen. Abgesehen davon gibt es Zeiten, in denen Sie es nicht vermeiden können, und für diese Zeiten haben wir das Cmdlet Read-Host. Die Verwendung ist sehr einfach:

    $ FirstName = Read-Host -Prompt 'Geben Sie Ihren Vornamen ein'

    Was auch immer Sie eingeben, wird in der Variablen gespeichert.

    Das Schreiben von Ausgaben ist mit dem Cmdlet Write-Output genauso einfach.

    Write-Output “How-To Geek Rocks!”

    Kommen Sie morgen zu uns, wo wir alles, was wir gelernt haben, miteinander verbinden!