Articles

Funktionen in PowerShell verstehen

Erstellen Sie eine PowerShell-Funktion, anstatt denselben Code immer wieder zu kopieren und einzufügen.

Wenn Sie mit dem Schreiben von PowerShell-Skripten beginnen, sind Sie nicht unbedingt um Dinge wie Modularität, Wiederverwendbarkeit und „Best Practices“ besorgt.“ Du machst nur deine Füße nass. Im Laufe der Zeit werden Sie jedoch bald feststellen, dass Sie beginnen, sich im Code zu wiederholen.

Sie werden feststellen, dass die Notwendigkeit, immer wieder dasselbe zu tun, immer größer wird. Sie könnten einfach denselben Code kopieren und einfügen, aber es ist nicht nachhaltig. Warum nicht stattdessen kleine „Bausteine“ im Code erstellen, damit sie wiederverwendet werden können? Es ist Zeit, PowerShell-Funktionen zu erstellen.

Eine Funktion in PowerShell ist eine Gruppierung von Code mit optionaler Eingabe und Ausgabe. Es ist eine Möglichkeit, eine Reihe von Code zu sammeln, um eine oder viele verschiedene Male auszuführen, indem Sie einfach darauf zeigen, anstatt diesen Code wiederholt zu duplizieren.

Grundfunktionen

Es gibt zwei Arten von Funktionen in PowerShell. Wir haben eine „grundlegende“ Funktion und eine erweiterte Funktion. „Basic“ -Funktionen sind die einfachste Form einer Funktion, die erstellt werden kann. Sie verfügen nicht über die ausgefallenen integrierten Funktionen, die erweiterte Funktionen bieten. Es wird mithilfe der function-Anweisung gefolgt von geschweiften Klammern erstellt oder deklariert.

function Do-Something {}

Das obige ist technisch gesehen eine Funktion, die dann durch Aufrufen von Do-Something aufgerufen werden kann, aber wie Sie feststellen werden, tut sie nicht viel. Dies liegt daran, dass wir keinen Code zum Ausführen enthalten haben. Fügen wir einen einfachen Code hinzu, um sicherzustellen, dass er etwas tut. Zur Veranschaulichung verwende ich den Befehl Write-Host, der Text in die PowerShell-Konsole schreibt.

Funktion Do-Something {
Write-Host ‚Ich habe etwas getan!‘
}

PS > Etwas tun
Ich habe etwas getan!

Jetzt können Sie darüber sehen, wenn sie aufgerufen werden; Es führt den Code innerhalb der Funktion aus. Was ist, wenn wir etwas in den Code innerhalb der Funktion übergeben möchten, wenn sie ausgeführt wird? Wir können einen oder mehrere Parameter innerhalb eines Parameterblocks erstellen.

Funktion Do-Something {
param( $String )
Write-Host „Ich habe etwas getan – $String!“}

PS > Do-Something -String ‚Ding‘
Ich habe etwas getan – Ding!

Beachten Sie, dass ich den String-Parameter angegeben habe, indem ich einen Bindestrich gefolgt vom Parameternamen gefolgt vom Wert direkt nach dem Aufruf von Do-Something hinzugefügt habe. Dies sind die Grundlagen der Übergabe von Parametern an Funktionen.

Erweiterte Funktionen

Grundlegende Funktionen funktionieren, aber die meiste Zeit werden Sie feststellen, dass Sie erweiterte Funktionen erstellen. Erweiterte Funktionen sind Funktionen, die alle Funktionen als Grundfunktionen enthalten, aber auch einige integrierte Funktionen enthalten, die Grundfunktionen nicht bieten. Zum Beispiel hat PowerShell ein Konzept von Streams namens Error, Warning , Verbose usw. Diese Streams sind entscheidend für die korrekte Anzeige der Ausgabe für Benutzer. Grundlegende Funktionen verstehen diese Streams nicht von Natur aus.

Angenommen, wir möchten eine Fehlermeldung anzeigen, wenn innerhalb der Funktion etwas passiert. Wir möchten jedoch auch die Möglichkeit haben, diese Fehlermeldung aus irgendeinem Grund nur zu bestimmten Zeiten auszublenden. Mit einer Grundfunktion wäre es kludgy, dies zu tun. Mit einer erweiterten Funktion ist diese Funktionalität jedoch direkt integriert. Erweiterte Funktionen verfügen standardmäßig bereits über Parameter, auch wenn Sie sie nicht einschließen, z. B. Verbose, ErrorAction, WarningVariable usw. Diese können auf verschiedene Arten genutzt werden. Nehmen wir in unserem Fehlerbeispiel an, ich habe unsere Funktion mithilfe des Schlüsselworts auf „erweitert“ geändert.

Funktion Do-Something {

param( $String )

Schreib-Fehlermeldung ‚Gefahr, Wird passieren!‘
}

PS> Tu-Etwas
Tu-Etwas : Gefahr, Wird Robinson!
In Zeile: 1 Zeichen:1
+ Etwas tun
+ ~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) ,
WriteErrorException
+ FullyQualifiedErrorId :
Microsoft.In: PowerShell.Menübefehle.WriteErrorException,Do-Something

Wenn dies ausgeführt wird, sehen Sie sofort roten Text, der angibt, dass er aus dem Fehlerstrom stammt. Lassen Sie uns diesen Fehler nun zum Schweigen bringen.

Do-Something -ErrorAction SilentlyContinue

Der ErrorAction-Parameter ist nur ein integrierter Parameter für jede erweiterte Funktion. Es gibt so viel mehr zu PowerShell-Funktionen, für die wir keine Zeit hatten. Eine vollständige Aufschlüsselung aller Funktionen, die erweiterte Funktionen für Sie ausführen können, finden Sie im Hilfethema about_advanced_functions.

Schreibe einen Kommentar

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