正如标题所说,我们如何以彩色显示来自 PowerShell 脚本的控制台输出?我们正在使用 GoCD 的 v16.12。
编辑:由于公司政策,我们不允许使用 write-host。请不要问为什么:)
正如标题所说,我们如何以彩色显示来自 PowerShell 脚本的控制台输出?我们正在使用 GoCD 的 v16.12。
编辑:由于公司政策,我们不允许使用 write-host。请不要问为什么:)
如果您想要一种更简单的方法来处理这些颜色,您可以安装并使用 TMOutput 模块,这是我编写的一个模块。它使用 System.Console;但是,这样做的代码更少。
这是一个关于它的帖子的链接:http: //tommymaynard.com/script-sharing-write-output-gets-foreground-and-background-colors-and-more-2016/。在该页面上,有一个指向 Microsoft PowerShell 库上的模块的链接。如果您使用 PowerShellGet,您可以使用以下命令下载并安装它。
Install-Module -Name TMOutput
编辑:该模块将为您做的另一件事是将颜色重置为在您将想要的颜色放入之前的颜色。如果您只是自己使用 [System.Console],则必须自己执行此操作。
答案绝对与 GoCD 无关。关于什么
[System.Console]::BackgroundColor="blue"
[System.Console]::ForegroundColor="yellow"
[System.Console]::WriteLine("yellow on blue");
这只是任意不Write-Host
,但它是另一种可能满足要求的选择。
$Host.UI.Write('Cyan','DarkMagenta','Text to display')
重载:
void Write(string value)
void Write(System.ConsoleColor foregroundColor, System.ConsoleColor backgroundColor, string value)
此外,虽然没有直接关系,但值得注意的是,如果您的要求实际上是满足 PSScriptAnalyzer 规则,您可以将任何Write-Host
命令包装在使用动词Show
(例如Show-GoCDOutput
)的函数中,并且 PSScriptAnalyzer 将跳过它。