web-dev-qa-db-fra.com

Liste de toutes les couleurs disponibles pour PowerShell?

Je recherche une liste de toutes les couleurs que je peux utiliser dans PowerShell. Étant donné que nous devons fournir des noms et aucun nombre hexadécimal, il est difficile de déterminer si une couleur existe ou non, du moins si vous ne savez pas comment :))

Par exemple, comme -foregroundcolor

write-Host "hello world" -foregroundcolor "red"
18
RayofCommand

Les couleurs de la console sont dans une énumération appelée [System.ConsoleColor]. Vous pouvez répertorier toutes les valeurs à l'aide de la méthode statique GetValues ​​de [Enum]

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

ou juste

[Enum]::GetValues([ConsoleColor])
23
mjolinor

Jolie grille

$colors = [enum]::GetValues([System.ConsoleColor])
Foreach ($bgcolor in $colors){
    Foreach ($fgcolor in $colors) { Write-Host "$fgcolor|"  -ForegroundColor $fgcolor -BackgroundColor $bgcolor -NoNewLine }
    Write-Host " on $bgcolor"
}

screenshot of colourful output

https://Gist.github.com/timabell/cc9ca76964b59b2a54e91bda3665499e

21
Tim Abell

J'ai trouvé utile de prévisualiser la façon dont les couleurs de la console s'afficheront avec une simple fonction d'assistance:

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
  }
}
18
Emperor XLII

Que diriez-vous de vérifier l'aide? Ainsi, get-help write-Host vous dira:

[-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}]
6
vonPryz

Voici un exemple d'affichage de toutes les combinaisons de couleurs de couleurs d'arrière-plan et de premier plan.

$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
    }
}
2
Bonny Lindberg

Cela ne doit pas être si difficile. L'achèvement de l'onglet est votre ami. Appuyez sur l'onglet après -foregroundcolor (ou toute abréviation unique) les répertoriera. En mode d'édition emacs, ils seront tous listés en même temps.

set-psreadlineoption -editmode emacs  # put in your $profile


write-Host hello world -f # press tab, it actually appears above it

Black        Cyan         DarkCyan     DarkGreen    DarkRed      Gray         Magenta      White        
Blue         DarkBlue     DarkGray     DarkMagenta  DarkYellow   Green        Red          Yellow    

Il figure également dans la documentation sous -foregroundcolor: https://docs.Microsoft.com/en-us/powershell/module/Microsoft.powershell.utility/write-host?view=powershell-7

0
js2010