GitHub Actions中无法跨步骤获取PowerShell脚本输出求助
解决GitHub Actions中PowerShell脚本输出无法写入GITHUB_OUTPUT的问题
问题原因
你的PowerShell脚本使用Write-Host输出内容,但Write-Host在PowerShell中默认将内容发送到信息流(编号6),而非标准输出流。当你用&调用脚本时,$returnvalue只能捕获标准输出的内容,因此拿不到app_name=Signup-qa这行数据,自然无法写入GITHUB_OUTPUT供后续步骤读取。
解决方案
方案1:修改原PowerShell脚本(推荐)
将脚本中的Write-Host替换为Write-Output,让内容输出到标准输出流:
Write-Output "app_name=Signup-qa"
之后你的原有工作流步骤(两种写法都可以,推荐用$env:GITHUB_OUTPUT)就能正常捕获输出并写入环境变量。
方案2:不修改原脚本,重定向信息流
如果无法改动原脚本,在调用脚本时将信息流重定向到标准输出,这样$returnvalue就能捕获到内容:
- name: Assign to variable id: run-scriptx run: | $returnvalue = & "C:\Logs\getallkey.ps1" 6>&1 echo "$returnvalue" >> $env:GITHUB_OUTPUT
6>&1表示将编号为6的信息流重定向到标准输出流(编号1)。
验证后续步骤
确保后续步骤正确读取输出:
- name: Print application name run: | echo "Application Name: ${{ steps.run-scriptx.outputs.app_name }}"
内容的提问来源于stack exchange,提问作者Ashar
相关产品推荐
相关产品推荐

