Textfarben der PowerShell ändern

Ich möchte meine PowerShell-Fenster in einer anderen Hintergrundfarbe anzeigen lassen. Allerdings färbt PowerShell bei der Befehlseingabe verschiedene Bestandteile des Kommandos unterschiedlich ein.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
Ersatz für Intel-RST-Driver
Lesezeit: 2 Min.
Von
  • Hajo Schulz

Ich möchte meine PowerShell-Fenster in einer anderen als der von Microsoft vorgegebenen Hintergrundfarbe anzeigen lassen. Die Änderung ist ja über den Befehl „Eigenschaften“ im Systemmenü des Konsolenfensters schnell erledigt, auch eine passende Schriftfarbe findet sich hier.

Allerdings färbt die PowerShell bei der Befehlseingabe verschiedene Bestandteile des Kommandos wie den Befehlsnamen, Optionen oder Zeichenketten unterschiedlich ein. Einige dieser Farben heben sich jetzt überhaupt nicht mehr vom Hintergrund ab und sind praktisch nicht zu lesen. Wie kann man diese Farben ändern?

Ein Dialog ist für diese Anpassung nicht vorgesehen. Sie müssen sie vielmehr über den Befehl Set-PSReadLineOption vornehmen. Sein Aufruf sieht für diesen Zweck so aus:

Set-PSReadLineOption -Colors @{<Kategorie> = '<Farbe>'}

Dabei ist <Kategorie> durch eines der in der Microsoft-Dokumentation genannten Schlüsselwörter zu ersetzen, beispielsweise Command für den Befehlsnamen oder String für Zeichenketten in Anführungszeichen. Die <Farbe> können Sie auf zwei verschiedene Arten definieren: Wenn es eine der vordefinierten Farben sein soll, können Sie deren Namen verwenden, etwa Black für Schwarz oder DarkGreen für ein dunkles Grün – eine Liste liefert [ConsoleColor].GetEnumNames(). Alternativ können Sie statt der Farbe selbst einen ANSI-Escape-Code einsetzen, der diese einstellt. Beispiele listet ein Wikipedia-Artikel zum Thema. So zeigt die PowerShell nach der Eingabe

Set-PSReadLineOption -Colors @{Variable = "$([char]0x1b)[38;2;255;224;255m"}

Variablennamen in einem hellen Rosa (RGB: 255, 224, 255) an.

Damit die passende Farbe immer beim Öffnen eines neuen Power­Shell-Fensters eingestellt wird, schreiben Sie den Aufruf zweckmäßigerweise in Ihre Profile-Datei – deren Name steht in der Systemvariablen $profile.

(hos)