Sample all PowerShell Console Colors
I often need to pick console colors to use making host text a little easier to look at (coupled with smart indentation). The –Foregroundcolor parameter of the Write-Host cmdlet is what I commonly use to set text colors. I like to use lots of colors, but sometimes I forget what all the colors are and what they look like (the look is more important). The Intellisense in the v3+ ISE is great that it suggests the color names (tab completion will as well), but sometimes I need to be reminded of what each looks like. Here is a simple little one-liner that will show the color names in their appropriate color. I use this line every so often to remind me.
PS > [enum]::GetValues([System.ConsoleColor]) | Foreach-Object {Write-Host $_ -ForegroundColor $_}
Black
DarkBlue
DarkGreen
DarkCyan
DarkRed
DarkMagenta
DarkYellow
Gray
DarkGray
Blue
Green
Cyan
Red
Magenta
Yellow
White <-- White is here, but you can’t see it)
Hopefully this trick helps someone out.
-Gary Siepser
Comments
- Anonymous
January 01, 2003
SCCM - Anonymous
May 20, 2014
Thanks for this - Anonymous
February 02, 2015
Thanks for this, just what I needed :) - Anonymous
March 05, 2015
DarkMagenta is actually more blue-ish. default background of the console. - Anonymous
April 12, 2015
Very nice and thanks. In the "give an inch and take a mile" method I would like to ask one more question. How would we take each of those colors and try each of them to show on each of the possible back ground colors? Basically creating a pallet so you can see what you want for best flare and more important for my old eyes best contrast for readability. - Anonymous
April 24, 2015
$colors = [enum]::GetValues([System.ConsoleColor])
foreach( $fcolor in $colors )
{
foreach( $bcolor in $colors )
{
Write-Host "ForegroundColor is : $fcolor BackgroundColor is : $bcolor "-ForegroundColor $fcolor -BackgroundColor $bcolor
}
} - Anonymous
August 12, 2015
Change your UI
#Create variable with all colors
$colors = [enum]::GetValues([System.ConsoleColor]) #| Foreach-Object {Write-Host $_ -ForegroundColor $}
#$colors | Foreach-Object {Write-Host $ -ForegroundColor $_}
#get two random numbres
$randomint1 = Get-Random -Minimum 0 -Maximum $colors.Length
$randomint2 = Get-Random -Minimum 0 -Maximum $colors.Length
#$randomint1
#$randomint2
#set two random color varibles
$color1 = $colors.GetValue($randomint1)
$color2 = $colors.GetValue($randomint2)
#$color1
#$color2
#set host UI colors
$Host.ui.RawUI.BackgroundColor = $color1
$Host.UI.RawUI.ForegroundColor = $color2
#Set whole window
cls - Anonymous
August 14, 2015
Random UI Color
Updated
[tag:Get] System Colors
$colors = [enum]::GetValues([System.ConsoleColor])
$colors
#Create while variables
$int1 = 0
$int2 = 0
)#DARK LIGHT/LIGH DARK loop
while($int1 -eq 0
{
)#Random Int loop
while($int2 -eq 0
{
[tag:Get] two int. compare for match
$randomint1 = Get-Random -Minimum 0 -Maximum ($colors.Length-1)
$randomint2 = Get-Random -Minimum 0 -Maximum ($colors.Length-1)
if($randomint1 -ne $randomint2)
{
$int2 = 1
}
}#end random int loop
$randomint1
$randomint2
[tag:Get] colors from $colors variable using two random int
$color1 = $colors.GetValue($randomint1)
$color2 = $colors.GetValue($randomint2)
if($color1 -match "dark" -and $color2 -notmatch "dark" -and $color2 -notmatch "black")
{
Write-Host "DARK LIGHT MATCH"
$int1 = 1
}
elseif($color1 -notmatch "dark" -and $color2 -match "dark" -and $color1 -notmatch "black")
{
Write-Host "LIGHT DARK MATCH"
$int1 = 1
}
else
{
Write-Host "BOTH/NO MATCH"
$int2 = 0
}
}#end DARK LIGHT/LIGHT DARK loop
$color1
$color2
[tag:Set] Host UI fore and background colors
$Host.UI.RawUI.BackgroundColor = $color1
$Host.UI.RawUI.ForegroundColor = $color2
[tag:Set] whole screen to current host UI colors
cls - Anonymous
September 10, 2015
Some of the colors in the Powershell Window look to be custom colors. Look at the colors available above and those in the window. I think you'd need to be able to specify the rgb values