“ Powershell” Jenkins步骤的控制台输出出现延迟

时间:2018-08-13 09:15:32

标签: powershell output jenkins-pipeline

我有一个詹金斯管道。步骤之一是执行Powershell脚本的ModelState.IsValid。该脚本包含几个powershell语句,这些语句应告知脚本执行情况。

我希望以Echo开头的文本会立即出现在Jenkins作业的控制台中。

问题在于它们确实出现了,但被延迟了。我的印象是直到脚本完成其工作之前,输出才被推迟。但这使那些回声调用变得毫无用处。

如何实现用Echo编写的内容立即出现在Jenkins作业的控制台中?

实际上,Jenkins作业直到最近才使用Windows bat,然后所有回显调用立即出现在Jenkins中。然后我改用Powershell(因为我想并行做一些事情),现在遇到了问题。

我已经阅读了许多可以使用的CmdLets(EchoWrite-Verbose等)并进行了尝试,但是效果是一样的:输出人鱼但延迟了。在詹金斯(Jenkins)的工作中不允许使用Write-Host,并且通常认为Write-Host不适合该任务。

谢谢您的提示。

1 个答案:

答案 0 :(得分:0)

Echo只是Powershell中的别名,实际上它不运行bash'echo'命令,它运行CMDLet。 通过命令Get-Alias | ? {$_.name -like "echo*"},您可以看到,使用了CMDLet而不是“ Write-Output”。 要列出所有别名,您可以运行Get-Alias

使用.Net方法尝试输出:

[system.console]::WriteLine("My Output")