Zum Hauptinhalt springen

Gültigkeitsbereiche (Scopes) von Funktionen

Auch Funktionen haben, genau wie Variablen, einen Gültigkeitsbereich. Technisch gesehen sind Funk-tionen eigentlich nichts weiter als in Variablen gespeicherte Skriptblöcke, die automatisch gestartet wer-den, wenn man Ihren Namen eingibt. Hierzu ein kleines Beispiel:

$ScriptBlock = { 20 * 20 }
$ScriptBlock
> 20 * 20

Im obigen Skript wird ein Skriptblock mit dem Code 20 * 20 in einer Variablen gespeichert. Wenn Sie die Variable ausführen, wird aber nicht der Wert berechnet, sondern nur der Inhalt des Skriptblocks zurückgegeben. Das liegt, wie schon oben erwähnt, daran, dass ein Skriptblock einen Starter benötigt. Sobald Sie einen Ausführungsoperator vor die Variable schreiben, startet Powershell den Skriptblock und gibt das Ergebnis der Berechnung zurück:

$ScriptBlock = { 20 * 20 } 
& $ScriptBlock
> 400

Ein Skriptblock kann also auch aus einer Variablen heraus gestartet werden. Eine Funktion ist faktisch nichts anderes als eine Variable, die einen Skriptblock enthält, der automatisch ausgeführt wird, wenn man sie aufruft.