[英]Console output of “Powershell” Jenkins step appears with delay
我有一個詹金斯管道。 其中一個步驟是powershell
,其執行PowerShell腳本。 該腳本包含一些應告知腳本執行情況的Echo
語句。
我希望與Echo
一起發布的文本會立即出現在Jenkins作業的控制台中。
問題是它們確實出現了,但是延遲了。 我的印象是直到腳本完成其工作之前,輸出才被推遲。 但是,這使那些回聲調用毫無用處。
如何實現用Echo編寫的內容立即出現在Jenkins作業的控制台中?
實際上,Jenkins作業直到最近才使用Windows bat,然后所有回顯調用立即出現在Jenkins中。 然后我改用Powershell(因為我想並行做一些事情),現在遇到了問題。
我已經閱讀了許多可以使用的CmdLets( Write-Verbose
, Write-Information
等)並進行了嘗試,但效果是相同的:輸出人稱但延遲了。 在詹金斯(Jenkins)的工作中不允許使用Write-Host,並且通常認為Write-Host不適合該任務。
謝謝您的提示。
Echo只是Powershell中的別名,實際上它不運行bash'echo'命令,而是運行CMDLet。 使用命令: Get-Alias | ? {$_.name -like "echo*"}
Get-Alias | ? {$_.name -like "echo*"}
Get-Alias | ? {$_.name -like "echo*"}
_。name -like Get-Alias | ? {$_.name -like "echo*"}
您可以看到,使用CMDLet代替了'Write-Output'。 要列出所有別名,您可以運行Get-Alias
使用.Net方法嘗試輸出:
[system.console]::WriteLine("My Output")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.