2013-04-29 12 views
8

wiem, że mogę zmienić PowerShell konsoli kolory poprzez ustawienie w moim profilu coś takiego:Ustawianie PowerShell kolorów z wartościami sześciokątnych w skrypcie profilu

$Host.UI.RawUI.BackgroundColor = "White" 
Clear-Host 

natomiast w jednym PowerShell Console można przejść do karty kolorów w oknie Właściwości i ręcznie modyfikuj wartości RGB standardowych 16 kolorów ANSI. Czy możliwe jest ustawienie wartości heksadecymalnych lub RGB kolorów standardowych ze skryptu profilu? Na przykład ustawienie chciałbym mieć:

$Host.UI.RawUI.BackgroundColor = "#242424" # Gray 
Clear-Host 

Odpowiedz

5

Możesz, ale nie za pomocą obiektu $Host. Tabela kolorów jest przechowywana w rejestrze.

Używałbyś tych samych nazw, ale kolory byłyby inne. Dlatego domyślna konsola PowerShell ma kolor niebieski/szary.

1

O ile wiem, nie można. Interfejs API konsoli nie obsługuje kolorów niestandardowych. Jeśli to zrobisz:

$x = (Get-Host).UI.RawUI 
$x | gm 

zobaczysz, że BackgroundColor jest typu System.ConsoleColor.

4

Poprawny sposób to zrobić z rejestru

cd hkcu:/console 
$0 = '%systemroot%_system32_windowspowershell_v1.0_powershell.exe' 
ni $0 -f 
sp $0 ColorTable00 0x00562401 
sp $0 ColorTable07 0x00f0edee 

z kolorem jest

0x00BBGGRR 

Example

+0

Okazało się, że ustawienia te stają się skuteczne dopiero po dokonaniu zmian w okno właściwości. W jakiś sposób wszystkie te ustawienia są całkowicie ignorowane, uruchamiając to na przykład nowy komputer. Musisz dokonać jakiejkolwiek zmiany, zanim nowe okna będą respektować te ustawienia, jeśli chodzi o moje doświadczenie. – Eric

+2

Czy ktoś może rozwinąć tę odpowiedź? Czym są ColorTable00 i ColorTable07? Jak dotarłeś do "Z kolorem 0x00BBGGRR"? – noctonura

Powiązane problemy