为什么PowerShell不正确地显示“DarkYellow”文本?

我正在使用Write-Host cmdlet来更改提示的颜色,我注意到DarkYellow颜色没有显示为任何forms的黄色,而是显示为灰色! 这是对所有颜色的testing

 PS> 0..15 | %{ Write-Host "Hello, world!" -ForegroundColor $_ } 

我通过使用一个不好的值得到了所有枚举值的列表

 PS> Write-Host "Hello, World!" -ForegroundColor foo 

黑色,深蓝,深绿,深色,暗红,深红,暗黄,灰,暗灰,蓝,绿,青,红,洋红,黄,白

我意识到,这个“控制台颜色”列表莫名其妙地对应于这个控制台窗口/快捷方式的设置,对吧? 所以, DarkYellow将会是第七名,而且看起来很灰。

在这里输入图像说明

ForegroundColorSystem.ConsoleColor和这些控制台快捷方式设置之间的连接是什么? 为什么暗黄色显示为“开箱即用”的灰色? 我应该改变它吗? 这会改变我的系统上的每个控制台或只是这个快捷方式?

为什么控制台在Windows上如此精美?


我在Windows 7 Pro SP1 64位上,并从“开始”菜单启动“Windows PowerShell”快捷方式。

Lee Holmes的博客文章, PowerShell的Noble Blue ,谈论了这一点,但实际上并没有解释为什么DarkYellow改变了。 蓝色背景很可能是默认的DarkYellow无法读取的。

正如你可能已经想出的那样 – System.ConsoleColor稍微有些错误,因为它实际上没有指定颜色,它指定了一个可以通过快捷方式修改的颜色表的索引。 这不幸的是控制台子系统的限制。

如果更改快捷方式PowerShell.lnk,则只会为您自己更改颜色,并且仅在您从该链接启动PowerShell时才会更改颜色。 如果您使用开始| 运行,或者说运行cmd,然后从cmd运行PowerShell,你会得到不同的设置。

李的博客文章应该给你足够的提示,以获得你喜欢的行为。

我没有确切的答案,但我有这样的作品! 我做了一些研究(谢谢,杰森Shirk),并发现System.ConsoleColor只是一个索引到颜色表,必须由此代表

在这里输入图像说明

该文件提到, DarkYellow应该是“ 赭石 ”(RGB:204,119,34)。

 | DarkYellow | The color dark yellow (ochre). | 

从应用程序的左上方的窗口菜单中选择“默认”,你会看到通用的“控制台Windows属性”(如上图),这将修改任何ConsoleWindowClass类型的窗口。

选择“屏幕文本”选项,你会注意到它被设置为使用DarkYellow的位置的值。 我不知道他们为什么不在旁边使用GrayDarkGray ! 点击第7个框( DarkYellow的索引),并将其更改为赭色的RGB值。 然后,将“Screen Text”设置为GrayDarkGray (除非您确实需要赭石前景文字)。

所有的命令提示符,PowerShell和Git Bash(mingw)控制台都将被改变(我是)。


我在“运行”对话框中遇到了一些PowerShell提示。 它采取了颜色,但不是我的一些其他设置(物理和缓冲区大小等)。 我结束了使用scoop来安装concfg

 PS> scoop install concfg PS> scoop install sudo 

并导出我的好控制台设置

 PS> concfg export > ~\.consolerc 

并将它们导入到我偏见的提示中(可以使用sudo ,也可以使用sudo ,或者启动管理提示符)

 PS> sudo concfg import ~\.consolerc 

实际上,concfg似乎可以导出所有内容,颜色表值和选项! 这里是我的配置的部分转储(颜色部分)

 { "popup_colors": "cyan,white", "dark_gray": "#808080", "screen_colors": "gray,dark_magenta", "dark_green": "#008000", "blue": "#0000ff", "dark_yellow": "#cc7722", "red": "#ff0000", "magenta": "#ff00ff", "dark_red": "#800000", "yellow": "#ffff00", "dark_magenta": "#012456", "cyan": "#00ffff", "green": "#00ff00", "dark_blue": "#000080", "gray": "#c0c0c0", "white": "#ffffff", "black": "#000000", "dark_cyan": "#008080" }