Wie kann ich Skripte automatisch beim Start eines Windows Terminal-Tabs ausführen?

Melden
  1. Automatisches Ausführen von Skripten beim Start eines Windows Terminal-Tabs
  2. Zugriff auf die Windows Terminal-Konfigurationsdatei
  3. Profil anpassen, um Skripte beim Start auszuführen
  4. Alternative Möglichkeit: Start-Skripte über startingDirectory und Profil-Argumente
  5. Mehrere Befehle in PowerShell ausführen
  6. Verwendung von Profil-spezifischen Startbefehlen in der aktuellen Windows Terminal Version
  7. Zusammenfassung

Automatisches Ausführen von Skripten beim Start eines Windows Terminal-Tabs

Um Skripte beim Öffnen eines neuen Tabs in Windows Terminal automatisch auszuführen, muss man die Konfiguration des Terminals anpassen. Windows Terminal verwendet eine JSON-basierte Konfigurationsdatei, in der sogenannte Profile definiert werden. Ein Profil steht dabei für eine Art von Shell, beispielsweise PowerShell, Eingabeaufforderung (CMD), WSL oder andere. Für jedes dieser Profile kann man Befehle oder Skripte festlegen, die beim Start automatisch ausgeführt werden.

Zugriff auf die Windows Terminal-Konfigurationsdatei

Das Konfigurationsfile von Windows Terminal kann man ganz einfach erreichen, indem man die Windows Terminal App öffnet und anschließend über das Dropdown-Menü (Pfeil nach unten rechts neben dem Tab-Button) den Menüeintrag Einstellungen auswählt. Alternativ kann man auch die Tastenkombination Strg + , verwenden. Dadurch öffnet sich die Einstellungsoberfläche. Ab Windows Terminal Version 1.6 und höher steht eine grafische Oberfläche zur Verfügung, in der man die Profile und deren Eigenschaften visuell bearbeiten kann. Man kann hier direkt Einstellungen vornehmen, oder aber unten auf Open JSON file klicken, um die JSON-Konfigurationsdatei direkt zu bearbeiten.

Profil anpassen, um Skripte beim Start auszuführen

Jedem Terminal-Profil ist in der Konfiguration eine Eigenschaft namens commandline zugeordnet, die angibt, welches Programm gestartet wird und eventuell mit welchen Parametern. Hier kann man anstelle des Standard-Shell-Aufrufs auch ein Skript oder ein Programm mit Parametern hinterlegen, das beim Start ausgeführt wird.

Möchte man beispielsweise, dass in PowerShell beim Öffnen eines Tabs ein bestimmtes Skript ausgeführt wird, könnte man die commandline-Eigenschaft folgendermaßen anpassen:

"commandline": "powershell.exe -NoExit -File C:\\Pfad\\zu\\deinem\\skript.ps1"

Hierbei bewirkt -NoExit, dass sich die PowerShell nach Ausführung des Skripts nicht automatisch schließt, sondern im Terminal offen bleibt, sodass man weiterhin Befehle eingeben kann. Der Pfad zum Skript muss dabei mit doppeltem Backslash (\\) angegeben werden, da in JSON der Backslash ein Escapezeichen ist.

Alternative Möglichkeit: Start-Skripte über startingDirectory und Profil-Argumente

Man kann außerdem den Startordner des Tabs konfigurieren, indem man die Eigenschaft startingDirectory ändert. So kann man sicherstellen, dass relative Skriptpfade richtig aufgelöst werden. Außerdem können je nach Shell weitere Argumente verwendet werden. Zum Beispiel bei der Eingabeaufforderung (CMD) könnte man folgendes eingeben:

"commandline": "cmd.exe /k C:\\Pfad\\zu\\deinem\\startskript.bat"

Auch hier sorgt der Parameter /k dafür, dass das CMD-Fenster offen bleibt, nachdem der Befehl ausgeführt wurde.

Mehrere Befehle in PowerShell ausführen

Wenn man nicht nur ein Skript starten, sondern auch weitere Befehle ausführen möchte, kann man die PowerShell mit dem Parameter -Command starten, um beliebige Befehle auszuführen. Dabei muss man das Skript und andere Kommandos in einer Zeichenkette schreiben. Beispielsweise:

"commandline": "powershell.exe -NoExit -Command \"& { C:\\Pfad\\zu\\deinem\\skript.ps1; Write-Host Skript wurde gestartet }\""

Die geschweifte Klammer bildet hier einen Block, in dem mehrere Befehle gesammelt sind. Das &-Zeichen sorgt dafür, dass das Skript ausgeführt wird.

Verwendung von Profil-spezifischen Startbefehlen in der aktuellen Windows Terminal Version

Mit neueren Versionen von Windows Terminal wurde die Eigenschaft commandline teilweise durch commandline bzw. command ergänzt oder erweitert. Wichtig ist, dass man im Profil den Eintrag genau anpasst. Zudem bietet Windows Terminal für PowerShell Profile ab Version 1.11 die Möglichkeit, über die Einstellung startingProfile benutzerdefinierte Profile zu setzen, die eigene Befehle ausführen. Es kann etwas komplizierter werden, aber grundsätzlich gilt die Methode über commandline weiterhin.

Zusammenfassung

Zusammenfassend kann man sagen, dass das automatische Ausführen von Skripten beim Öffnen eines Tabs in Windows Terminal vor allem über das Anpassen der commandline-Eigenschaft eines Profils erreicht wird. Dabei gibt man die gewünschte Shell (z.B. PowerShell oder CMD) mit entsprechenden Parametern und dem Skriptpfad an. Mit den Optionen -NoExit bei PowerShell oder /k bei CMD bleibt das Terminalfenster offen, sodass man weitere Eingaben machen kann. Wichtig ist, dass der Pfad zum Skript korrekt angegeben und der Befehl in der JSON-Konfiguration richtig escaped wird. Mit diesen Anpassungen kann man das Startverhalten eines Tabs gezielt steuern und eigene Skripte automatisiert ausführen lassen.

0
0 Kommentare