PowerShell可用的所有颜色列表?

时间:2013-12-12 10:51:37

标签: powershell powershell-v2.0 powershell-v3.0

我正在搜索我可以在PowerShell中使用的所有颜色的列表。由于我们需要提供名称而不是hexnumber,因此很难确定是否存在颜色,至少如果您不知道如何:))

例如,-foregroundcolor

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

7 个答案:

答案 0 :(得分:20)

控制台颜色位于名为[System.ConsoleColor]的枚举中。您可以使用[Enum]

的GetValues静态方法列出所有值
[Enum]::GetValues([System.ConsoleColor])

或只是

[Enum]::GetValues([ConsoleColor])

答案 1 :(得分:17)

我发现使用简单的辅助函数预览控制台颜色的显示方式很有用:

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 :(得分:15)

漂亮的网格

$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

答案 3 :(得分:6)

查看帮助怎么样?像这样,get-help write-host会告诉你:

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

答案 4 :(得分:4)

我不会记下大约700万(如果您的终端可以显示它们,则which you can apparently use now),但是这里是主要的all named for you
我添加了其他内容,例如“ bold”,“ underline”和“ negative”。

像这样称呼他们(fg的{​​{1}},foreground的{​​{1}}和“明亮”前景的bg / background /background。bf进行重置,并且bg + default也可以分别进行重置)

fg.default

COLOURS!

那些24位颜色值得期待? bg.default。也许您是在Linux上运行pwsh或来自'nix背景? $style.fg.green + 'Im green!' 'I feel a little ',$style.bg.black,' moody' -join '' "Math is pretty $($style.negative)$(191 * 7)$($style.default) too" xterm颜色会让您有宾至如归的感觉。

$style.bg.rgb -f 120,32,230

显然,您也可以设置超链接和截断的文本!
https://github.com/PowerShell/PowerShell/issues/7744

答案 5 :(得分:2)

以下是显示背景和前景色的所有颜色组合的检查。

$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
    }
}

答案 6 :(得分:1)

不必那么难。制表符完成是您的朋友。在-foregroundcolor(或任何唯一的缩写)后按Tab键将列出它们。在emacs编辑模式下,它们都会一次列出。

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    

它也在-foregroundcolor下的文档中:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/write-host?view=powershell-7