IT

Goto in PowerShell mit Switch-Case selber bauen

Spaghetti-Code mit goto-BefehlenIn moderneren Programmier- und Skriptsprachen wie PowerShell verschwindet aus berechtigten Gründen die Möglichkeit die goto-Funktion zu nutzen. Dadurch lässt sich einfach zu schnell Spaghetti-Code fabrizieren und bei wachsenden Skripten und langem Quellcode verliert man so relativ schnell den Überblick, wann etwas durch goto an welcher Stelle bzw. zu welchem Zeitpunkt im PowerShell-Skript passiert.

Allerdings wollen genügend Programmierer, vermutlich für eine schnelle Quick&Dirty-Umsetzung, trotzdem noch gerne goto und Sprungmarken in einem solchen PowerShell-Skript verwenden. Auch wenn es nicht zu empfehlen ist, kann man sich mit Hilfe der Switch-Funktion eine goto-ähnliche Funktionsweise des Skriptes aufbauen!

 

Goto durch Funktion mit Switch-Case

Die neue Skriptsprache PowerShell bietet im Vergleich zu einfachen Batch-Skripten viele andere Kontrollstrukturen und vereinfachte Schleifen, mit denen man viel komfortabler programmieren und Code einsparen und wiederverwenden kann, als mit den beliebten goto-Statements.

Trotzdem kann man sich mit eben diesen neuen Kontrollstrukturen auch wieder die alten goto-Statements auf die eine oder andere Weise zurückholen. Hierzu kann man z. B. eine Funktion namens „goto“ erstellen. In dieser nutzt man die Switch-Case-Funktion und teilt sich dadurch seinen Code in Abschnitte ein. Wichtig ist, dass das gesamte Skript nun in dieser einzigen goto-Funktion aufgebaut wird! Am Ende jeden Abschnitts muss der jeweils nächste Abschnitt aufgerufen werden. Am Ende ruft man die goto-Funktion mit der Ausführung des ersten Abschnitts, also dem ersten Case, auf. Das sieht beispielweise so aus:

Nun kann man natürlich innerhalb der Abschnitte z. B. mit „if und else“-Abfragen hin und her springen und auch wieder einen anderen als den nächsten Abschnitt aufrufen.

Tobias Langner

Tobias Langner

Ich arbeite seit mehreren Jahren als Software-Release-Manager, zuvor als IT-Administrator, bin ausgebildeter Fachinformatiker für Systemintegration und Studium-"Pausierer" an der FernUni Hagen. Achtung: Für die Richtigkeit der zur Verfügung gestellten Informationen, Skripte, etc. übernehme ich keine Gewähr. Deren Nutzung geschieht ausdrücklich auf eigene Gefahr!

Alle Beiträge ansehen von Tobias Langner →

Schreibe einen Kommentar

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