在配置文件脚本中使用十六进制值设置Powershell颜色

时间:2013-04-29 13:51:13

标签: powershell colors

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

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

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

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

5 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:4)

执行此操作的正确方法是使用注册表

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

颜色为

0x00BBGGRR

答案 2 :(得分:3)

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

答案 3 :(得分:1)

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

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

您会看到BackgroundColor的类型为System.ConsoleColor

答案 4 :(得分: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  

正确的信誉属于“脚本专家”,抱歉,我没有链接,但是代码直接来自他的网站。