我将更改文件的 git 控制台颜色设置为黄色。这在 中有效cmd.exe
,但在 powershell 中无效。但是,一些颜色可以正常工作,而其他颜色似乎映射到完全不同的颜色。洋红色在 powershell 中呈现为蓝色。这种疯狂的情况是怎么发生的?我该如何让它按预期工作?
答案1
cmd 控制台的颜色通过颜色表条目(24 位,8 位颜色 RGB 反转 0xBBGGRR)定义,
可以在注册表中查看:
> reg query "hkcu\console"
HKEY_CURRENT_USER\console
ColorTable00 REG_DWORD 0x0
ColorTable01 REG_DWORD 0x800000
ColorTable02 REG_DWORD 0x8000
ColorTable03 REG_DWORD 0x808000
ColorTable04 REG_DWORD 0x80
ColorTable05 REG_DWORD 0x800080
ColorTable06 REG_DWORD 0x8080
ColorTable07 REG_DWORD 0xc0c0c0
ColorTable08 REG_DWORD 0x808080
ColorTable09 REG_DWORD 0xff0000
ColorTable10 REG_DWORD 0xff00
ColorTable11 REG_DWORD 0xffff00
ColorTable12 REG_DWORD 0xff
ColorTable13 REG_DWORD 0xff00ff
ColorTable14 REG_DWORD 0xffff
ColorTable15 REG_DWORD 0xffffff
cmdcolor /?
命名偏离电源外壳
Color /? Dec Hex PowerShell
0 = Black 0 0 Black
1 = Blue 1 1 DarkBlue
2 = Green 2 2 DarkGreen
3 = Aqua 3 3 DarkCyan
4 = Red 4 4 DarkRed
5 = Purple 5 5 DarkMagenta
6 = Yellow 6 6 DarkYellow
7 = White 7 7 Gray
8 = Gray 8 8 DarkGray
9 = Light Blue 9 9 Blue
A = Light Green 10 a Green
B = Light Aqua 11 b Cyan
C = Light Red 12 c Red
D = Light Purple 13 d Magenta
E = Light Yellow 14 e Yellow
F = Bright White 15 f White
而且 PowerShell 有两个不同的 ColorTable 条目:
ColorTable05 REG_DWORD 0x562401
ColorTable06 REG_DWORD 0xf0edee
后者是 PowerShellDarkYellow
与 CMD 的比较,Yellow = 0x8080
这解释了图片中的差异。