我正在搜索我可以在PowerShell中使用的所有颜色的列表。由于我们需要提供名称而不是hexnumber,因此很难确定是否存在颜色,至少如果您不知道如何:))
例如,-foregroundcolor
write-host "hello world" -foregroundcolor "red"
答案 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"
}
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
那些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