Ik wil de kleur van mijn PowerShell-vensters anders hebben dan de standaard kleuren die Microsoft heeft ingesteld. Ik weet dat ik via ‘Eigenschappen’ in het systeemmenu van het consolevenster de kleuren snel kan aanpassen, inclusief een geschikte fontkleur.
Wanneer ik echter een commando invoer, geeft PowerShell verschillende delen van het commando aparte kleuren, zoals de naam van het commando, de opties of strings. Sommige van die kleuren vallen dan helemaal weg tegen de achtergrond en zijn praktisch onleesbaar. Is er een mogelijkheid om ook deze kleuren in te stellen?
oor zo’n aanpassing is er geen optie in de instellingen. Daarvoor moet je het commando Set-PSReadLineOption gebruiken. Het commando ziet er voor dit doel zo uit: Set-PSReadLineOption -Colors @{<categorie> = ‘<Kleur>’}
Daarbij moet je <categorie> vervangen door een van de trefwoorden die in de Microsoft-documentatie worden genoemd, bijvoorbeeld Command voor de opdrachtnaam of String voor tekenreeksen tussen aanhalingstekens.
Je kunt de <kleur> op twee verschillende manieren definiëren: als je een van de voorgedefinieerde kleuren wilt gebruiken, kun je de corresponderende naam gebruiken, zoals Black voor zwart of DarkGreen voor donkergroen – met [ConsoleColor].GetEnumNames() roep je een lijst met opties op.
In plaats van de voorgedefinieerde kleuren kun je ook een zelfgekozen ANSI-escape-code gebruiken om de kleur in te stellen. Voorbeelden zijn te vinden in een Wikipedia-artikel over het onderwerp (zie de link). Als je in PowerShell Set-PSReadLineOption -Colors @{Variable = “$([char]0x1b) [38;2;255;224;255m”} invoert, dan worden vervolgens namen van variabelen in een lichtroze kleur getoond (RGB: 255, 224, 255).
Om ervoor te zorgen dat de juiste kleur altijd is ingesteld als je een nieuw PowerShell-venster opent, voeg je de regel toe aan je profielbestand – de naam daarvan staat in de systeemvariabele $profile.