11

我知道我可以通过在我的个人资料中设置类似以下内容来更改 PowerShell 控制台颜色:

$Host.UI.RawUI.BackgroundColor = "White"
Clear-Host

但是,在 Powershell 控制台中,可以转到“属性”中的“颜色”选项卡并手动修改标准 16 ANSI 颜色的 RGB 值。是否可以从配置文件脚本中设置标准颜色的十六进制或 RGB 值?例如我想要的设置:

$Host.UI.RawUI.BackgroundColor = "#242424"  # Gray
Clear-Host
4

5 回答 5

8

正确的方法是使用注册表

cd hkcu:/console
$0 = '%systemroot%_system32_windowspowershell_v1.0_powershell.exe'
ni $0 -f
sp $0 ColorTable00 0x00562401
sp $0 ColorTable07 0x00f0edee

随着颜色

0x00BBGGRR
于 2014-05-18T00:10:05.300 回答
7

你可以,但不能通过$Host对象。颜色表存储在注册表中。

您将使用相同的名称,但颜色会有所不同。这就是为什么默认的 PowerShell 控制台是蓝色/灰色的。

于 2013-04-29T17:49:40.017 回答
3

我怀疑这是可能的。$Host.UI.RawUI.BackgroundColour 是一个 System.ConsoleColor 枚举器,因此您只能选择一组有限的颜色。 http://msdn.microsoft.com/en-GB/library/system.consolecolor.aspx

于 2013-04-29T14:10:37.977 回答
1

据我所知,你不能。控制台 API 不支持自定义颜色。如果你这样做:

$x = (Get-Host).UI.RawUI
$x | gm

你会看到 BackgroundColor 的类型是System.ConsoleColor

于 2013-04-29T14:14:07.163 回答
0

对于任何可能希望自定义颜色的人来说,Powershell ISE 是这里的格式。

    #Get the list of colors and hex equivalents
     [windows.media.colors] | Get-Member -Static -MemberType property | 
    ForEach-Object { 
    $psISE.Options.ConsolePaneTextBackgroundColor = `
    ([windows.media.colors]::$($_.name)).tostring() 
    "$($_.name) `t $([windows.media.colors]::$($_.name))" 
    }
    
    #Example of how to change the console color in the powershell ISE
    $psISE.Options.ConsolePaneBackgroundColor = '#FF4169E1'  #RoyalBlue
    $psISE.Options.ConsolePaneTextBackgroundColor = '#00FFFFFF'  #Transparent  

适当的功劳属于“脚本专家”,抱歉我没有链接,但代码直接来自他的网站。

于 2020-03-09T18:58:43.880 回答