You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中获取Windows Terminal的实际背景色?

获取Windows Terminal实际背景色的PowerShell方案

在Windows 11环境下的PowerShell脚本中使用ANSI颜色时,若要让字体背景色适配终端当前背景,需要读取Windows Terminal的实际RGB背景色,但常用命令返回的只是配色方案的标识而非真实颜色:

PS C:\> $Host.ui.RawUI.BackgroundColor
Black

PS C:\> [console]::BackgroundColor
Black

以上命令返回的Black是配色方案中的颜色标识,并非“Campbell Powershell”这类自定义配色的实际蓝色RGB值。

可行的简便方法

目前没有原生PowerShell cmdlet直接获取Windows Terminal当前配色的实际RGB背景色,但可以通过以下两种简化方式实现:

1. 自动解析配置文件

无需手动定位路径,用PowerShell变量拼接配置文件路径后解析JSON:

# 获取Windows Terminal配置文件路径
$wtSettingsPath = Join-Path $env:LOCALAPPDATA "Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json"
# 读取并解析配置
$settings = Get-Content $wtSettingsPath -Raw | ConvertFrom-Json
# 获取当前使用的配色方案名称
$currentScheme = $settings.profiles.defaults.colorScheme
# 提取对应配色的背景色RGB值
$bgColor = ($settings.schemes | Where-Object { $_.name -eq $currentScheme }).background

# 输出结果
Write-Host "当前终端背景色:$bgColor"

2. 使用Windows Terminal的查询命令

较新版本的Windows Terminal支持--query参数查询配置,可通过该命令简化配置读取:

# 获取所有配色方案信息
$allSchemes = wt --query schemes | ConvertFrom-Json
# 获取当前默认配置的配色方案名称
$currentScheme = (wt --query profiles.defaults | ConvertFrom-Json).colorScheme
# 提取对应背景色
$bgColor = ($allSchemes | Where-Object { $_.name -eq $currentScheme }).background

Write-Host "当前终端背景色:$bgColor"

说明

PowerShell的传统控制台API($Host.ui.RawUI、[console]类)仅识别系统预设的控制台颜色枚举,无法直接获取Windows Terminal独立的自定义配色方案中的实际RGB值,因此必须通过读取终端配置来获取真实颜色参数。

内容的提问来源于stack exchange,提问作者Darth Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 22:23:20