5

我可以通过脚本更改控制台背景颜色:

$host.UI.RawUI.BackgroundColor = "Black"

但在这种情况下,我仅限于预设数量的定义颜色,不幸的是我正在寻找的颜色不在这里。有从控制台 GUI 中选择颜色的选项(右键单击顶部的 Windows PowerShell 栏->属性->颜色)。不幸的是(再次)只有 BackGroundColor 和 ForeGroundColor 可以在那里更改,没有办法在那里更改 $host.privatedata 颜色之一。

是否有可能通过脚本以某种方式放置十六进制编码颜色?

4

2 回答 2

2

这里有一个注册表黑客:http: //stackingcode.com/blog/2011/11/14/zenburn-powershell

于 2013-01-23T14:26:22.347 回答
2

在我看来,Powershell 应该允许您将颜色设置为 rgb 十六进制值,而不是预定义的一组颜色。但抛开设计问题不谈,我解决这个问题的方法是创建一个 .reg 文件来重新定义 Powershell 使用的“颜色桶”(他们称之为 ColorTables)。下面的代码包含说明 Powershell 中特定 ColorTable 控件的注释。

笔记:

  1. 要先保存当前颜色,请打开 regedit 并导出 HKCU\Console。
  2. 将下面的代码保存到一个文件(例如colors.reg),然后运行它。
  3. 创建一个指向 powershell 的快捷方式。运行。它应该有新的颜色。
  4. 要修改颜色,请将相应的 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
于 2017-05-16T14:50:54.373 回答