Powershell:我们可以更改写入进度UI吗?

Powershell:我们可以更改写入进度UI吗?,powershell,user-interface,Powershell,User Interface,是否可以更改写入进度颜色方案和其他UI内容,如进度条 目前,它是浅绿色的,带有一个由“O”组成的进度条。。。我想更改颜色(或删除颜色)并用其他颜色替换该“O”。您可以通过修改ConsoleColorProxy对象的ProgressForegroundColor和ProgressBackgroundColor来更改写入进度输出的前景色和背景色 例如,如果你真的讨厌你的眼睛: $host.privatedata.ProgressForegroundColor = "darkgreen"; $host

是否可以更改写入进度颜色方案和其他UI内容,如进度条


目前,它是浅绿色的,带有一个由“O”组成的进度条。。。我想更改颜色(或删除颜色)并用其他颜色替换该“O”。

您可以通过修改
ConsoleColorProxy
对象的
ProgressForegroundColor
ProgressBackgroundColor
来更改
写入进度
输出的前景色和背景色

例如,如果你真的讨厌你的眼睛:

$host.privatedata.ProgressForegroundColor = "darkgreen";
$host.privatedata.ProgressBackgroundColor = "red";
字母“o”在类Microsoft.PowerShell.ProgressNode中的RenderFull方法中硬编码。该类位于Microsoft.PowerShell.ConsoleHost程序集中


如果您真的想更改“o”,您可以编写自己的主机。我在SO上看到了一些关于自定义主机的问题,MS已将其记录在MSDN网站上。

是的,它非常有效。我刚刚能够使用“$Host.PrivateData.ProgressBackgroundColor=$Host.UI.RawUI.BackgroundColor”将进度条的背景色与控制台的背景色匹配,只剩下对进度显示字符的更改,即“O”。你知道我们怎么做吗?我没发现。如果我的回答(大部分)解决了你的问题,请将其标记为已接受的答案。