如何更改 PowerShell 提示颜色?

How can I change the PowerShell prompt color?

我经常发现自己迷失在大量看起来都一样的线条中。我很难从以前命令的输出中分辨出我最近命令输出的开头。

所以,我想将 PowerShell 提示符的颜色从黑底白字永久更改为其他颜色。我该怎么做?

在我看来,提示由两部分组成:

  1. 路径
  2. 命令

如何更改两者的颜色,但不更改命令的输出颜色?

或者,我也非常希望看到路径部分带有下划线。这也有助于在其他输出行中找到我之前的命令,以便查看相应的其他输出从哪里开始。这可能吗?


编辑

一些评论要求对我的问题进行一些详细说明,所以这里有两个描述 actual/expected 情况的屏幕截图(注意红线):

实际

预计


我想为 PowerShell 5.x 和 Core.

获取这个

那么,您认为这是一个功能请求而不是对现有功能的查询吗?


我发现如果您使用 Powershell 5.1,您可以使用 ASCII table 中的一些转义字符以获得带下划线的输出:

Write-Host "Hello $([char]27)[4mWorld$([char]27)[24m"

由于我不确定这是否完美,所以给特定文本加下划线的最佳解决方案可能是这样的:

function Write-Underlined-Host([string]$text,[boolean]$ispath)
{
    if ($ispath -eq $false)
    { 
        Write-Host $text
    }
    else
    {
        $underline = '-'
        $underline_count = $underline * $text.Length

        Write-Host -Object $text
        Write-Host -Object $underline_count
    }
}

$my_path = 'c:\users\jime\desktop'

Write-Underlined-Host -text $my_path -ispath $true

如果您想更改 powershell 脚本编辑器的颜色(例如,如果您使用 ISE),您可以更改所有类型的颜色。

在 ISE 中: 工具>选项>脚本窗格令牌:(见我附上的图片)

将我的问题发布到 GitHub 上的 PowerShell 团队后,这里是我的问题的答案:

https://github.com/PowerShell/PowerShell/issues/11136

有一个 prompt() 挂钩函数可用于自定义提示。