设置PowerShell posh-git的WindowTitle - 转义连字符?

时间:2014-03-20 23:31:15

标签: powershell escaping console2 posh-git

我正在尝试设置Powershell的WindowTitle(由Console托管)以匹配我的posh-git提示符的输出。所以,如果我有一个修改过的文件,我的提示就像是;

[Repo master + 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]'。有关提供转义字符以使其正常运行的任何想法吗?

如果我将' - '字符更改为〜,那么我将整个标题改为:

[Repo master + 0~1~0]

提前致谢。

1 个答案:

答案 0 :(得分:2)

这是Console2的错误。有关类似的错误报告,请参阅#421 Tab titles containing dash are truncated

此外,Dash causes corruption in window title谈到了这个问题,但似乎还没有修复它。

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