gpt4 book ai didi

powershell - 以编程方式更改 PowerShell 的 16 种默认控制台颜色

转载 作者:行者123 更新时间:2023-12-02 22:12:21 25 4
gpt4 key购买 nike

PowerShell 通过为其 16 种控制台颜色之一(出于某种原因称为 DarkMagenta 的颜色)分配一个蓝色值,改进了(坦率地说)模糊的 Windows 控制台配色方案,并将其用作默认屏幕背景。

我想以编程方式将 16 种颜色中的每一种更改为自定义配色方案。例如,在我的 PowerShell 配置文件中。

我找到了有关如何更改将 ConsoleHost 的 16 种颜色中的哪一种分配给不同类型文本的解释,但我想要的是实际将 ConsoleHost 的 16 种颜色中的每一种更改为不同的十六进制值。 (仅适用于我自己,不适用于其他用户或其他控制台,例如 cmd.exe 。)

当然,这可以通过右键单击菜单栏并手动调整“属性”或“默认”设置来完成,但这很快就会让人感到厌烦。而且我无法找到这些设置的持久化位置。

(我已经搜索了注册表和 C:\Users\<current_user>\AppData ,除了 ColorTable## 下的 HKCU:\Console 属性,其范围显然比PowerShell控制台设置更广泛之外,一无所获。)

如果有人可以提供帮助,将不胜感激。

最佳答案

控制台颜色在多个地方定义:

  • 全局/默认 :HKCU:\Console .这适用于所有 conhost.exe -应用程序包括cmd.exepowershell.exe .
  • 每个进程: HKCU:\Console\<PROCESS_PATH_WITH_UNDESCORE>用于特定过程的更改。前任。 HKEY_CURRENT_USER\Console\%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe已定义并已修改 ColorTable05ColorTable06 .
  • 每个快捷方式:在快捷方式 (.lnk) 内。这很难以编程方式修改,可能需要 P\Invoke。

  • 您可以使用 PS 修改过程级值:
    Set-ItemProperty -Path "HKCU:\Console\%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe" -Name ColorTable04 -Value 5645313

    请注意,要查看进程级别的值,您需要使用运行、Windows 资源管理器等启动 PS。如果您使用其中一种快捷方式,则将使用该快捷方式的值。因此,修改快捷方式并保留其副本用于新设置可能会更容易。

    每个“ColorTable”都有一个硬编码在 System.ConsoleColor-enum 中的名称。 ,所以他们使用名为 DarkMagneta 的那个只是“随机”的。可能是因为它是一种很少使用的独特颜色。

    关于powershell - 以编程方式更改 PowerShell 的 16 种默认控制台颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36116326/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com