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

如何在Classic ADO Pipeline的两个PowerShell脚本间传递变量

Classic ADO Pipeline跨PowerShell任务传递变量问题解决办法

这种跨任务的变量传递是完全可以实现的,你遇到的报错是因为读取变量的语法错误,具体修正方案如下:

正确的变量设置与读取方式

1. 变量设置(「Set Solution Name」任务)

你的原有写法是正确的,无需修改:

Write-Host "::vso[task.setvariable variable=SolutionName;]$SolutionName"

若需要跨阶段传递变量,需添加isoutput=true参数:

Write-Host "::vso[task.setvariable variable=SolutionName;isoutput=true]$SolutionName"

2. 变量读取(「Get Solution Name」任务)

你之前用$SolutionNameFromTask = "$(SolutionName)"会被PowerShell解析为执行名为SolutionName的命令,导致报错。正确的读取方式有两种:

  • 直接读取系统环境变量:
    $SolutionNameFromTask = $env:SolutionName
    Write-Host "读取到的SolutionName:$SolutionNameFromTask"
    
  • 若需保留ADO宏语法风格,需通过环境变量间接引用:
    $SolutionNameFromTask = "$($env:SolutionName)"
    

额外注意事项

  • 变量名大小写敏感,确保设置和读取的变量名完全一致
  • 跨阶段传递时,需先给「Set Solution Name」任务设置引用名称(在任务配置的「General」选项卡中设置),比如SetSolutionNameTask,后续阶段读取时使用$(SetSolutionNameTask.SolutionName)

内容的提问来源于stack exchange,提问作者B-Rad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 02:52:05