在 PowerShell 中更改颜色

Marion Paul Kenneth Mendoza 2023年1月30日 2022年5月14日
  1. 在 PowerShell 中更改颜色简介
  2. 在 PowerShell 中使用 [System.Enum]
  3. 在 PowerShell 中更改控制台颜色
在 PowerShell 中更改颜色

本文将讨论如何使用 PowerShell 更改字体颜色、脚本的背景颜色和控制台窗口颜色。

在 PowerShell 中更改颜色简介

这些命令检索一个对象,其中包含有关 PowerShell 控制台(控制台主机)的信息。

命令:

$host

输出:

Name             : Windows PowerShell ISE Host
Version          : 5.1.22000.282
InstanceId       : 8cff2bea-868b-4d9e-b55a-06a3f4b8c20c
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-PH
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.Host.ISE.ISEOptions
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

PrivateData 属性具有我们正在寻找的所有颜色属性。

命令:

$host.PrivateData

输出:

ErrorForegroundColor                      : #FFFF9494
ErrorBackgroundColor                      : #00FFFFFF
WarningForegroundColor                    : #FFFF8C00
WarningBackgroundColor                    : #00FFFFFF
VerboseForegroundColor                    : #FF00FFFF
VerboseBackgroundColor                    : #00FFFFFF
DebugForegroundColor                      : #FF00FFFF
DebugBackgroundColor                      : #00FFFFFF
ConsolePaneBackgroundColor                : #FF012456
ConsolePaneTextBackgroundColor            : #FF012456
ConsolePaneForegroundColor                : #FFF5F5F5
ScriptPaneBackgroundColor                 : #FFFFFFFF
ScriptPaneForegroundColor                 : #FF000000

颜色是为 $host.PrivateData 对象内的警告、错误、调试、详细和进度流设置的。尝试更改其中一个值并查看你的控制台是否也会更改颜色。

命令:

$host.PrivateData.ErrorBackgroundColor = "White"

错误背景默认颜色 "black" 将更改为 "white"

更改错误背景颜色

在 PowerShell 中使用 [System.Enum]

要在 PowerShell 中查询所有控制台颜色,我们运行以下命令。

命令:

[System.Enum]::GetValues('ConsoleColor')

输出:

Black
DarkBlue
DarkGreen
DarkCyan
DarkRed
DarkMagenta
DarkYellow
Gray
DarkGray
Blue
Green
Cyan
Red
Magenta
Yellow
White

控制台上显示的输出是纯白色文本(如果未更改默认颜色)。执行以下命令将控制台颜色显示为各自的颜色。

命令:

[System.Enum]::GetValues('ConsoleColor') |
ForEach-Object { Write-Host $_ -ForegroundColor $_ }

输出:

使用 Write-Host 以字体颜色显示颜色值

假设我们想看看哪些颜色组合会起作用并适合我们的偏好。在这种情况下,我们可以使用下面的命令在所有可能的背景颜色上输出所有可能的前景色。

命令:

$colors = [enum]::GetValues([System.ConsoleColor])
Foreach ($bgcolor in $colors){
    Foreach ($fgcolor in $colors) {
        Write-Host "$fgcolor|"  -ForegroundColor $fgcolor -BackgroundColor $bgcolor -NoNewLine
    }
    Write-Host " on $bgcolor"
}

输出:

显示所有可能的前景和背景控制台颜色组合

在 PowerShell 中更改控制台颜色

更改突出的控制台前景和背景颜色与我们之前的对象略有不同。我们可以尝试下面的代码片段来更改文本颜色和 PowerShell 的控制台窗口。

命令:

$host.UI.RawUI.ForegroundColor = "DarkGreen"
$host.UI.RawUI.BackgroundColor = "Black"
cls

输出:

在 PowerShell 中更改控制台颜色

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

相关文章 - PowerShell Color