Geek School: Lernen von PowerShell-Variablen, Eingabe und Ausgabe

Inhaltsverzeichnis:

Video: Geek School: Lernen von PowerShell-Variablen, Eingabe und Ausgabe

Video: Geek School: Lernen von PowerShell-Variablen, Eingabe und Ausgabe
Video: Wirklich noch CHROME? | Vergleich: BROWSER können VIEL MEHR 2024, März
Geek School: Lernen von PowerShell-Variablen, Eingabe und Ausgabe
Geek School: Lernen von PowerShell-Variablen, Eingabe und Ausgabe
Anonim
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.
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 mit dem Namen "FirstName" und geben Sie 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. Das Dollarzeichen ist eigentlich 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:
Sie können also jederzeit eine Variable aus der Shell löschen:

Remove-Item Variable:FirstName

Variablen müssen auch kein einzelnes Objekt enthalten. Sie können genauso einfach 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 | Sort CPU -Descending | select -First 3

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.
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.

Image
Image

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, mathematisch zu arbeiten, 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 die PowerShell-Funktionen zum Automatisieren vorgesehen sind, sollten Sie vermeiden, dass Benutzer Informationen nach Möglichkeit anfragen. 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 ‘Enter your first name’

Was auch immer Sie eingeben, wird in der Variablen gespeichert.
Was auch immer Sie eingeben, wird in der Variablen gespeichert.
Das Schreiben von Ausgaben ist mit dem Cmdlet Write-Output genauso einfach.
Das Schreiben von Ausgaben ist mit dem Cmdlet Write-Output genauso einfach.

Write-Output “How-To Geek Rocks!”

Empfohlen: