我有一个詹金斯管道。步骤之一是执行Powershell脚本的ModelState.IsValid
。该脚本包含几个powershell
语句,这些语句应告知脚本执行情况。
我希望以Echo
开头的文本会立即出现在Jenkins作业的控制台中。
问题在于它们确实出现了,但被延迟了。我的印象是直到脚本完成其工作之前,输出才被推迟。但这使那些回声调用变得毫无用处。
如何实现用Echo编写的内容立即出现在Jenkins作业的控制台中?
实际上,Jenkins作业直到最近才使用Windows bat,然后所有回显调用立即出现在Jenkins中。然后我改用Powershell(因为我想并行做一些事情),现在遇到了问题。
我已经阅读了许多可以使用的CmdLets(Echo
,Write-Verbose
等)并进行了尝试,但是效果是一样的:输出人鱼但延迟了。在詹金斯(Jenkins)的工作中不允许使用Write-Host,并且通常认为Write-Host不适合该任务。
谢谢您的提示。
答案 0 :(得分:0)
Echo只是Powershell中的别名,实际上它不运行bash'echo'命令,它运行CMDLet。
通过命令Get-Alias | ? {$_.name -like "echo*"}
,您可以看到,使用了CMDLet而不是“ Write-Output”。
要列出所有别名,您可以运行Get-Alias
使用.Net方法尝试输出:
[system.console]::WriteLine("My Output")