PowerShell: Skriptblöcke - Part 18

4.5 Skriptblöcke

Skriptblöcke sind bereits öfter in diesem Dokument verwendet oder erwähnt worden. Im Grunde ist das ein Stück Code, eingeschlossen in geschweifte Klammern. Sie können nicht nur in CMDLets, Funktionen und Sprachelementen verwendet werden, sondern können auch direkt ausgeführt oder als Argument übergeben werden. Darüber hinaus können Skriptblöcke als Funktionen, Filter (siehe Kapitel 4.6) und CMDLets verwendet werden. Letztlich können Skriptblöcke auch zur Funktionsdefinition zur Laufzeit verwendet werden, was allerdings nicht Bestandteil dieses Dokuments wird.
Ein Skriptblock hat folgende allgemeine Syntax:

 {                                                                 Anfang des Skriptblocks
Param                                                      Param Schlüsselwort
(   
<ParameterList>                                Parameterliste
)   
Begin                                                        Begin Schlüsselwort
{   
<StatementList>                                 Anweisungsblock
}   
Process                                                   Process Schlüsselwort
{   
<StatementList>   
}   
End                                                            End Schlüsselwort
}   
}                                                                  Ende des Skriptblocks

Wenn der Param Statement nicht verwendet wird, werden Argumente an den Skriptblock über die Variable $Args übergeben. Innerhalb der Skriptblockgrenzen können auch die Schlüsselworte Begin, Process und End verwendet werden, analog wie es bei den Funktionen ist. In diesem Fall kann das Skriptblock wie ein CMDLet arbeiten, d.h. die zu verarbeitenden Objekte über die Pipeline empfangen. Dann wird auch automatisch die Laufvariable $_ erzeugt, welche im gesamten Process-Block des Skriptblocks gültig ist und jeweils ein über die Pipeline übergebenes Objekt speichert:

1.	1..10 | & {Begin {$P=1} Process{$P=$P * $_} End {$P}}
3628800

Das Beispiel oben berechnet die Fakultät von 10. Er zeigt auch die Methode, wie ein Skriptblock ausgeführt werden kann, nämlich mit Hilfe des Call-Operators. Ein Aufruf über einen Namen kann nicht funktonieren, da die Skriptblöcke keine Namen tragen (sonst wären sie fast Funktionen).

Eine Übersicht aller Artikel dieser Windows PowerShell Blogserie findet ihr hier.

Zurück zu Part  17.8 - Sprachkonstrukte (Try, Catch, Finally)

Neuen Kommentar schreiben
Durch Absenden dieses Formulars akzeptieren Sie die Mollom Privatsphärenrichtlinie.