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

时间:2014-02-21 17:49:37

标签: windows powershell console shortcut

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

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

我通过使用错误的值获得了所有枚举值的列表

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

Black,DarkBlue,DarkGreen,DarkCyan,DarkRed,DarkMagenta,DarkYellow,Grey,DarkGray,Blue,Green,Cyan,Red,Magenta,Yellow,White

我意识到这个“控制台颜色”列表以某种方式对应于此控制台窗口/快捷方式的设置,对吧?所以,DarkYellow将是第7个,并且肯定看起来很灰。

enter image description here

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

为什么Windows上的控制台如此笨拙?!


我使用的是64位Windows 7 Pro SP1,并且我从“开始”菜单启动了“Windows PowerShell”快捷方式。

2 个答案:

答案 0 :(得分:11)

Lee Holmes的博文PowerShell's Noble Blue,对此有所了解,但实际上并没有解释为什么DarkYellow被改变了。很可能默认的DarkYellow在蓝色背景下是不可读的。

正如您可能已经想到的那样 - System.ConsoleColor略有错误名称,因为它实际上没有指定颜色,它指定了一个可以通过快捷方式修改的颜色表的索引。遗憾的是,这是控制台子系统的限制。

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

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

答案 1 :(得分:7)

我没有确切的答案,但我有一些有用的东西!我做了一些研究(谢谢,Jason Shirk)并发现System.ConsoleColor只是颜色表的索引,必须由此表示

enter image description here

documentation确实提到DarkYellow应该是" ochre" (RGB:204,119,34)。

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

选择"默认值"从应用程序的左上角窗口菜单中,您将看到通用"控制台Windows属性" (如上所述),它将修改任何ConsoleWindowClass类型窗口。

选择"屏幕文字"选项,您会注意到它已设置为使用DarkYellow点中的值。我不知道他们为什么不在旁边使用GrayDarkGray!单击第7个框(DarkYellow的索引)并将其更改为赭石的RGB值。然后,设置"屏幕文字"到GrayDarkGray(除非你真的想要赭石前景文字)。

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


我确实遇到了来自"运行"的PowerShell提示的一点麻烦。对话。它采用了颜色,但不是我的其他一些设置(物理和缓冲区大小等)。我最终使用scoop来安装concfg

PS> scoop install concfg
PS> scoop install sudo

并导出了我的好控制台设置

PS> concfg export > ~\.consolerc

并将其导入我行为不端的偏见中(您可以使用sudo,也可以使用scoop,或者只是启动管理员提示)

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