2013-12-12 4 views
6

Sto cercando un elenco di tutti i colori che posso usare in PowerShell. Dal momento che abbiamo bisogno di fornire i nomi e non hexnumbers, è difficile capire se un colore esiste o no, almeno se non si sa come :))Elenco di tutti i colori disponibili per PowerShell?

per esempio come -foregroundcolor

write-host "hello world" -foregroundcolor "red" 

risposta

11

la console si trovano in un enum chiamato [System.ConsoleColor]. Si possono elencare tutti i valori utilizzando il metodo statico di [Enum]

[Enum]::GetValues([System.ConsoleColor]) 

o semplicemente

[Enum]::GetValues([ConsoleColor]) 
+5

Semplicemente espandendo il codice di mjolinor: [Enum] :: GetValues ​​([System.ConsoleColor]) | foreach {Write-Host "$ _" -ForegroundColor $ _} Mostrerà tutti i nomi dei colori nel suddetto colore –

5

Che ne dici di controllare l'aiuto? Come così, get-help write-host vi dirà:

colori
[-BackgroundColor {Black | DarkBlue | DarkGreen | DarkCyan | DarkRed | DarkMagenta | DarkYellow | Gray | DarkGray | Blue | Green | Cyan | Red | Magenta | Yellow | White}] 
[-ForegroundColor {Black | DarkBlue | DarkGreen | DarkCyan | DarkRed | DarkMagenta | DarkYellow | Gray | DarkGray | Blue | Green | Cyan | Red | Magenta | Yellow | White}] 
+0

ho usato il get-GELP per forgroundcolor e che mi ha portato ai profili PowerShell. grazie comunque – RayofCommand

12

ho trovato utile per vedere in anteprima come i colori della console verranno visualizzate con una semplice funzione di supporto GetValues :

function Show-Colors() { 
    $colors = [Enum]::GetValues([ConsoleColor]) 
    $max = ($colors | foreach { "$_ ".Length } | Measure-Object -Maximum).Maximum 
    foreach($color in $colors) { 
    Write-Host (" {0,2} {1,$max} " -f [int]$color,$color) -NoNewline 
    Write-Host "$color" -Foreground $color 
    } 
} 
2

Ecco un examle di visualizzare tutte le combinazioni di colore di sfondo e colori di primo piano.

$FGcolors = [enum]::GetValues([System.ConsoleColor]) 
$BGcolors = [enum]::GetValues([System.ConsoleColor]) 

Foreach ($FGcolor in $FGcolors) 
{ 
    Foreach ($BGcolor in $BGcolors) 
    { 
     Write-Host ("Foreground: $FGColor BackGround: $BGColor") -ForegroundColor $FGcolor -BackgroundColor $BGcolor 
    } 
} 
+0

L'output può essere compattato, per una scansione visiva più veloce: 'Scrivi Host" $ FGColor su $ BGColor " -background $ BGColor -foreground $ FGColor -nonewline'. – JosephHarriott