我有一个返回结果的函数。我将该结果设置为管道中的环境值。当我调用环境变量时,它不会打印接下来的两行。
Write-Host "Before env : $result"
write-host "##vso[task.setvariable variable=message]$result"
[![enter code here][1]][1]
在其他阶段,我调用了消息其他变量,但它没有打印接下来的两行。
write-host "After env : $(message)"
[![enter code here][2]][2]
我唯一的挑战是没有得到最后两行,即 ASDB_REPORT / ASDB_REPORT_TEST
答案 0 :(得分:0)
如果您在发布管道中使用 PowerShell 设置环境变量,请参阅此文档:Set variables in scripts。
$result = 'crushed tomatoes'
Write-Host "##vso[task.setvariable variable=sauce]$result"
# Write-Host "sauce: $(sauce)"
请注意“后续步骤也会将管道变量添加到其环境中。您不能在定义它的步骤中使用该变量。”因此,您可以使用 macro syntax 并在任务中作为环境变量访问新变量。
Write-Host "sauce: $(sauce)"
Write-Host "my environment variable is $env:SAUCE"
但是,除非您使用 multi-stages YAML,否则您无法将变量从一个作业传递到另一个作业,或从一个阶段传递到另一个发布管道阶段。详情请参阅Set a multi-job output variable。