如标题所述,我们如何在PowerShell脚本中以彩色显示控制台输出?我们正在使用 GoCD 的 v16.12 版本。
编辑:由于公司政策,我们不允许使用 write-host。请不要问为什么 :)
编辑:由于公司政策,我们不允许使用 write-host。请不要问为什么 :)
如果你想要一个更简单的方式来处理这些颜色,你可以安装并使用我编写的TMOutput模块。它使用System.Console,但是你需要编写的代码更少。
这里有一篇关于它的文章链接:http://tommymaynard.com/script-sharing-write-output-gets-foreground-and-background-colors-and-more-2016/。在那个页面上,有一个链接指向Microsoft的PowerShell Gallery上的该模块。如果你使用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 将跳过它。