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"
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])
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"
}
https://Gist.github.com/timabell/cc9ca76964b59b2a54e91bda3665499e
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
}
}
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}]
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
}
}
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