我正在使用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个,并且肯定看起来很灰。
ForegroundColor
,System.ConsoleColor
和这些控制台快捷方式设置之间的联系是什么?为什么暗黄色显示为“开箱即用”的灰色?我应该改变吗?这会改变我系统上的每个控制台还是只改变这个快捷方式?
为什么Windows上的控制台如此笨拙?!
我使用的是64位Windows 7 Pro SP1,并且我从“开始”菜单启动了“Windows PowerShell”快捷方式。
答案 0 :(得分:11)
Lee Holmes的博文PowerShell's Noble Blue,对此有所了解,但实际上并没有解释为什么DarkYellow被改变了。很可能默认的DarkYellow在蓝色背景下是不可读的。
正如您可能已经想到的那样 - System.ConsoleColor略有错误名称,因为它实际上没有指定颜色,它指定了一个可以通过快捷方式修改的颜色表的索引。遗憾的是,这是控制台子系统的限制。
如果更改快捷方式PowerShell.lnk,则只能为自己更改颜色,并且只有从该链接启动PowerShell时才会更改颜色。如果您使用开始|运行或说运行cmd,然后从cmd运行PowerShell,您将获得不同的设置。
李的博客文章应该给你足够的提示,以获得你喜欢的行为。
答案 1 :(得分:7)
我没有确切的答案,但我有一些有用的东西!我做了一些研究(谢谢,Jason Shirk)并发现System.ConsoleColor
只是颜色表的索引,必须由此表示
documentation确实提到DarkYellow
应该是" ochre" (RGB:204,119,34)。
| DarkYellow | The color dark yellow (ochre). |
选择"默认值"从应用程序的左上角窗口菜单中,您将看到通用"控制台Windows属性" (如上所述),它将修改任何ConsoleWindowClass
类型窗口。
选择"屏幕文字"选项,您会注意到它已设置为使用DarkYellow
点中的值。我不知道他们为什么不在旁边使用Gray
或DarkGray
!单击第7个框(DarkYellow
的索引)并将其更改为赭石的RGB值。然后,设置"屏幕文字"到Gray
或DarkGray
(除非你真的想要赭石前景文字)。
所有命令提示符,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"
}