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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:35:06