You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Pipeline中添加pwsh可选参数returnStdout的语法求助

解决Jenkins Pipeline中PowerShell脚本无成功确认输出的问题

要让Jenkins捕获并显示PowerShell脚本的执行输出,你需要正确使用pwsh步骤的returnStdout参数,同时确保脚本本身产生可捕获的输出。以下是修改后的完整Pipeline:

pipeline {
    agent any
    environment {
        CRED_APP_CATALOG = credentials('id-app-tenant')
    }
    stages {
        stage('ConnectToApp'){
            steps {
                script{
                    // 启用returnStdout捕获脚本输出,赋值给变量
                    def scriptOutput = pwsh(
                        script: '''
                            $cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $env:CRED_APP_CATALOG_USR , $(convertto-securestring $env:CRED_APP_CATALOG_PSW -asplaintext -force)
                            Connect-PnPOnline -Url $env:app_catalog_path -Credentials $cred 
                            // 添加-Verbose让Add-PnPApp输出详细操作日志
                            Add-PnPApp -Path "./sharepoint/solution/samplesolution.sppkg" -Publish -Overwrite -Verbose
                        ''',
                        returnStdout: true
                    )
                    // 在Jenkins控制台打印捕获到的输出
                    echo scriptOutput
                }
            }
        }
    }
}

关键调整说明:

  • returnStdout: true参数:这是Jenkins pwsh步骤的内置参数,设置为true后,PowerShell脚本的标准输出会被捕获并作为返回值返回给Groovy变量。
  • 捕获输出并打印:将pwsh步骤的返回值赋值给scriptOutput变量,再用echo命令输出到Jenkins控制台,这样就能看到脚本执行的详细信息。
  • 添加-Verbose参数:默认情况下Add-PnPApp可能不会输出明确的成功确认信息,加上-Verbose后会输出操作的详细日志,包括发布成功的提示,确保有内容可被捕获。

如果只需要简单的成功提示,也可以在PowerShell脚本末尾手动添加输出语句:

Write-Host "应用包发布覆盖操作执行完成"

这样即使没有-Verbose,也能在Jenkins控制台看到明确的成功标识。

内容的提问来源于stack exchange,提问作者adeniran827

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:10:40