2

我正在尝试设置 Powershell(由控制台托管)的 WindowTitle 以匹配我的 posh-git 提示符的输出。因此,如果我有一个修改过的文件,我的提示将类似于:

[回购大师 +0 ~1 -0]

我想将 $Host.UI.RawUI.WindowTitle 设置为相同的东西,但字符串的“-0”部分似乎是某种转义序列。如果我做这样的事情:

$repoName = Split-Path -Leaf (Split-Path $GitStatus.GitDir)
$title = "[$repoName $($GitStatus.Branch)"

if($GitPromptSettings.EnableFileStatus -and $GitStatus.HasWorking) {
    $title += " +$($GitStatus.Working.Added.Count)"
    $title += " ~$($GitStatus.Working.Modified.Count)"
    $title += " -$($GitStatus.Working.Deleted.Count)"

    if ($GitStatus.Working.Unmerged) {
        $title += " !$($GitStatus.Working.Unmerged.Count)"
    }
}

$title += "]"
$Host.UI.RawUI.WindowTitle = $title

我得到的只是'-0]'。关于提供转义字符以使其正常运行的任何想法?

如果我将“-”字符更改为 ~,那么我会得到整个标题:

[回购大师+0~1~0]

提前致谢。

4

1 回答 1

2

这是 Console2 的错误。请参阅#421 包含破折号的选项卡标题被截断以获取类似的错误报告。

此外,Dash 会导致有关该问题的窗口标题损坏,但似乎他们还没有修复它。

使用不同的 PowerShell 主机,代码可以在标题中使用连字符正常工作。

于 2014-03-21T01:47:33.243 回答