在 PowerShell 中更改顏色

Marion Paul Kenneth Mendoza 2024年2月15日
  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