write-verbose
将powershell的所有输出打印到TFS日志记录屏幕上,而write-host
则没有。
我喜欢write-host
的地方是它的-foreground color
选项。
所以我想保留颜色,因此我问:
我已经尝试过write-host
,但是在TFS日志中什么也没打印出来
我如何配置TFS日志记录以接受/识别write-host
就像识别write-verbose
一样?
答案 0 :(得分:1)
有一种解决方案,可以满足注释中较窄的要求:使TFS显示Write-Host
输出时不显示颜色,继续在本地显示颜色,并且不将代码中的所有Write-Host
调用更改为某种形式其他。
解决方案是仅针对TFS环境重新定义Write-Host
,这样最终使用某些受支持的Write-Host
命令(如Write-
或{{1 }}。
因此您可以将其添加到powershell脚本的开头:
Write-Verbose
请注意,此方法有一个重要限制:如果任何函数使用Write-Output
然后返回某个值,则它的返回值将包括发送到if($Env:BUILD_BUILDNUMBER) {
function Write-Host($object) {
Write-Output $object
}
}
的所有内容。例如,在重新定义Write-Host
之前和之后,比较Write-Host
的值:
$x
为避免这种情况,您也可以使用Write-Host
或任何其他function test() {
Write-Host "hi"
return "bye"
}
$x = test
代替Write-Verbose
,但是它们不适用于非基本类型。它们将出错,或者仅显示类型名称。您可以在Write-
重定义内进行Write-Output
来防止错误,但是通常可能只显示对象的类型名称。
有关TFS环境变量的更多信息:https://docs.microsoft.com/en-us/azure/devops/pipelines/scripts/powershell?view=azure-devops