Cmd-Nachfolger: Scripting mit der Windows PowerShell

PowerShell-Scripts

Scripte liegen bei der PowerShell in ganz normalen Dateien vor, die die Shell anhand der Environment-Variable Path sucht. Als Dateiendung müssen Scripts die Erweiterung .msh aufweisen. Jedes Statement, das Sie in einem Script verwenden, können Sie auch direkt auf der Kommandozeile benutzen: Scripts sind also letztlich nichts anderes als die permanente Speicherung einer Abfolge von Kommandozeilenoperationen.

Die Sprache: Zuweisungsoperatoren

Die PowerShell verfügt über einen ganzen Satz von Zuweisungsoperatoren, die stark an die Operatoren von C# erinnern: = weist einen Wert an eine Variable zu, += addiert den Wert rechts zum Wert links, -= zieht den Wert rechts vom Wert links ab. Weitere Operatoren existieren für Multiplikationen, Divisionen und Modulo-Operationen. Mit

MSH> $a = “Ein String“

weisen Sie der Variable $a den Text „Ein String“ zu. Der Befehl

MSH> $a += “ kann wachsen“

addiert (erweitert) diesen Text um „ kann wachsen“. Um den Inhalt der Variable auszugeben, reicht die Eingabe der Variable selbst. Der Grund: Die Eingabe der Variable ist ein Ausdruck, der als Ergebnis ein Objekt liefert. Dieses Objekt kommt aber sofort am Ende der Pipeline an, und dabei handelt es sich um den Bildschirm. Dadurch wird eine textbasierte Repräsentation der Variable in der Shell angezeigt.

MSH> $a
Ein String kann wachsen

Bei der Zuweisung an Variablen können Sie aber mehr als nur Texte angeben: Integer, Arrays, Hashtables, - im Prinzip jeden Typ des .Net Frameworks. Ein Array aus vier Integern würden Sie beispielsweise wie folgt zuweisen:

MSH> $a = 1,2,4,8

Variablen können dabei auch mit Attributen versehen werden. Ein solches Attribut ist beispielsweise das ReadOnly-Attribut. Variablen, die mit diesem Attribut erzeugt werden, können im Script nicht verändert werden:

MSH> Set-Variable a 42 –Option ReadOnly

Versuchen Sie dann später, den Wert von a zu verändern, erhalten Sie eine Fehlermeldung:

$a = 9 # Fehler !