在我看来,Powershell 应该允许您将颜色设置为 rgb 十六进制值,而不是预定义的一组颜色。但抛开设计问题不谈,我解决这个问题的方法是创建一个 .reg 文件来重新定义 Powershell 使用的“颜色桶”(他们称之为 ColorTables)。下面的代码包含说明 Powershell 中特定 ColorTable 控件的注释。
笔记:
- 要先保存当前颜色,请打开 regedit 并导出 HKCU\Console。
- 将下面的代码保存到一个文件(例如colors.reg),然后运行它。
- 创建一个指向 powershell 的快捷方式。运行。它应该有新的颜色。
- 要修改颜色,请将相应的 ColorTableXX dword 设置为十六进制值,但请注意,RGB 值实际上是 BGR,需要在数字前填充 00。所以蓝色 #4286f4 的双字为 00f48642。
颜色.reg:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console]
; BACKGROUND
"ColorTable07"=dword:00efefef
; ERROR BACKGROUND
"ColorTable00"=dword:00efefef
;ERROR
"ColorTable12"=dword:00255ffc
; STATIC TEXT (PROMPT and OUTPUT) AND COMMAND ARGUMENT
"ColorTable01"=dword:00472713
; COMMAND TEXT
"ColorTable14"=dword:00c56e36
; COMMAND TEXT SELECTED
"ColorTable09"=dword:00ef47d3
; COMMAND FLAG
"ColorTable08"=dword:00a53733
; COMMAND FLAG SELECTED
"ColorTable15"=dword:00ef47d3
; COMMMAND ARGUMENT SELECTED
"ColorTable06"=dword:00ef47d3
; COMMAND VARIABLE (e.g. $profile)
"ColorTable10"=dword:00a53733
; COMMAND VARIABLE SELECTED
"ColorTable13"=dword:00ef47d3
; deep purple -- not sure what this is
"ColorTable04"=dword:00660566
; brown -- not sure what this is
"ColorTable05"=dword:00336699
; purple -- not sure what this is
"ColorTable11"=dword:00845f84
; green -- not sure what this is
"ColorTable02"=dword:00339933
; pastel lavendar -- not sure what this is
"ColorTable03"=dword:00FF9999