PowerShell可用的所有颜色列表?

PowerShell可用的所有颜色列表?,powershell,powershell-2.0,powershell-3.0,Powershell,Powershell 2.0,Powershell 3.0,我正在搜索PowerShell中可以使用的所有颜色的列表。因为我们需要提供名称和数字,所以很难确定颜色是否存在,至少如果您不知道如何使用:)) 例如,as-foregroundcolor write-host "hello world" -foregroundcolor "red" 查看帮助怎么样?与此类似,get help write host将告诉您: [-BackgroundColor {Black | DarkBlue | DarkGreen | DarkCyan | DarkRed

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

例如,as
-foregroundcolor

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

查看帮助怎么样?与此类似,
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}]

控制台颜色位于名为[System.ConsoleColor]的枚举中。您可以使用[Enum]的GetValues静态方法列出所有值

[Enum]::GetValues([System.ConsoleColor])
或者只是

[Enum]::GetValues([ConsoleColor])

我发现使用一个简单的辅助功能预览控制台颜色的显示方式非常有用:

函数显示颜色(){
$colors=[Enum]::GetValues([ConsoleColor])
$max=($colors | foreach{“$|”.Length}|度量对象-最大值)。最大值
foreach($colors中的$colors){
写主机(“{0,2}{1,$max}”-f[int]$color,$color)-NoNewline
写入主机“$color”-前景$color
}
}

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

$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
    }
}
漂亮的格子

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

更新的powershell中更新的颜色:


我不打算记下所有~700万(如果您的终端可以显示的话),但这里是主要的,
我还包括了诸如“
bold
”、
underline
negative
之类的内容

只需这样称呼它们(
fg
代表
foreground
bg
代表
background
bf
/
bg
代表“明亮”的前景/背景。
default
用于重置,还有
fg.default
+
bg.default
也用于单独重置)

$style.fg.green+“我是绿色的!”
“我有点感觉,$style.bg.black,$moody'-join”
“数学也很好$($style.negative)$(191*7)$($style.default)

那些24位的颜色是什么颜色<代码>$style.bg.rgb-f 120,32230。也许您是在linux上运行pwsh,或者您来自“nix”背景
$style.fg.x-f30
xterm颜色会让您感觉宾至如归

控制台颜色(VT转义序列) $style=@( 0、'默认值'、'粗体', 4、“下划线”, 24,“名词行”, 7、‘负’, 27,"肯定",, "fg",, 30、‘黑色’、‘红色’、‘绿色’、‘黄色’、‘蓝色’、‘洋红’、‘青色’、‘白色’, 39、“违约”, "bg",, “黑色”、“红色”、“绿色”、“黄色”、“蓝色”、“洋红”、“青色”、“白色”, 49“违约”, 90、黑色、红色、绿色、黄色、蓝色、品红、青色、白色、, 'uBB',100,'黑色'、'红色'、'绿色'、'黄色'、'蓝色'、'洋红'、'青色'、'白色' ) ` | &{ 开始{ $sequence=“$([char]27)[{0}m” $style=@{ 前景=@{ rgb=$sequence-f'38;2;{0};{1};{2}' x=$sequence-f'38;5;{0}' }; 背景=@{ rgb=$sequence-f'48;2;{0};{1};{2}' x=$sequence-f'48;5;{0} }; bf=@{}; bb=@{}; } $current=$style $index=$null } 过程{ 开关-正则表达式($\ux){ '\d'{$index=$\} “^.{$current=$style[$.-replace'^.',”]} 违约{ $current[$\uz]=$sequence-f$索引++ #评论我 “$($当前[$)$($)`t”|输出主机 } } } 结束{ $style #更多的示范 @($style.bg.rgb-f 120,32230),($style.fg.x-f 30),'hello',$style.default)-加入“”;退出主机 } } 显然,您也可以设置超链接和截断文本!

不必那么难。制表符的完成是你的朋友。在
-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下的文档中:

我使用了get-gelp for forgroundcolor,这让我进入了powershell配置文件。无论如何,感谢您扩展mjolinor的代码:[Enum]::GetValues([System.ConsoleColor])foreach{Write Host“$\”-foregroundcolor$}这将显示我在PowerShell 5-7中不得不使用的上述颜色中的所有颜色名称:[System.Enum]::GetValues([System.ConsoleColor])| foreach{Write Host“$|”-ForegroundColor$|可以压缩输出,以便更快地进行视觉扫描:
Write Host“$FGColor on$BGColor”-背景$BGColor-前景$FGColor-非WLINE
。这段代码很好地显示了暗色ellow实际上并没有那么暗,也不是很黄。这是一个bug吗?
DarkYellow
DarkMagenta
背景看起来非常不同(但正确)在powershell 6.1+中。遗憾的是,这在Win8.1上的powershell 6.1.1中根本不起作用。抱歉,
5.1.18362.752
(构建
10.0.18362.752
)在这里的Win10上,我已经阅读了链接的材料,但不知何故,我看不到如何实现我想要的。我想写Host-ForegroundColor???,这样文本就是粉红色。事实上,我想指定我个人的三重整数来使用自定义RGB颜色。你的回答似乎表明这是可能的,但我还没有掌握它的用法。