运行命令时,自定义Powershell背景色会还原吗?

时间:2019-06-19 05:22:51

标签: powershell colors console

当我以超级用户帐户或其他条件运行时,我正在使用Powershell配置文件将Powershell控制台的背景颜色更改为黑色。我只需在个人资料ps1中设置以下变量即可。

$host.ui.rawui.backgroundcolor = "black"
$host.ui.rawui.foregroundcolor = "white"

使用此配置文件的控制台窗口以黑色背景打开,初始提示为带有黑色背景的白色文本。在没有键入任何内容的情况下击中Enter不会改变这一点。

但是,无论何时输入任何文本,键入文本的背景颜色,提示和所有输出(错误除外)都将恢复为默认的海军蓝白色。整个控制台背景保持黑色。

使用. .\path\profile.ps1重新加载配置文件或手动重置$host变量(如上所述)会将提示恢复为黑底白字,但是相同的行为再次发生。最奇怪的是,即使键入文本然后退格并没有输入任何内容仍然会导致提示恢复为海军。

有没有办法使实际上具有纯黑色背景,或者这仅仅是对Powershell控制台(v5.1 btw)的限制?

我已经看到了一些其他与颜色相关的变量的引用,但是我看不出它们在这方面有什么帮助:

$host.PrivateData.ErrorForegroundColor
$host.PrivateData.ErrorBackgroundColor
$host.PrivateData.WarningForegroundColor
$host.PrivateData.WarningBackgroundColor
$host.PrivateData.DebugForegroundColor
$host.PrivateData.DebugBackgroundColor
$host.PrivateData.VerboseForegroundColor
$host.PrivateData.VerboseBackgroundColor
$host.PrivateData.ProgressForegroundColor
$host.PrivateData.ProgressBackgroundColor

P.S。我会发布图片,但提示和内容中包含个人信息。我肯定等不及上个月发布的新版Terminal MS。我只能希望它没有那么麻烦。

1 个答案:

答案 0 :(得分:1)

您将需要相应地更改PSReadLineOptionRawUIPrivateData的选项。

请参见Get-PSReadlineOption细化当前颜色以及如何用Set-PSReadlineOption -TokenKind $token -BackgroundColor Black进行调整