如何在Powershell中在运行时设置,重置或覆盖Azure Pipelines中的变量?

时间:2019-12-30 22:07:06

标签: azure azure-devops powershell-2.0 azure-pipelines

在Azure Pipelines中的运行时设置变量在Poweshell 1.0和2.0中均不起作用

Write-Host "##vso[task.setvariable variable=sauce]crushed tomatoes"

如果执行以下操作,请不要设置我可以在其他步骤或管道中引用的任何值:

Write-Host "The value is: $env:sauce"    # line 10
Write-Host "The value is: $(sauce)"      # line 11

第10行的输出是

The value is:

第11行出现错误:

sauce : The term 'sauce' is not recognized as the name of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\AzurePipelines\Agent\work\_temp\cf78918a-9bc2-4874-ad26-fbc3c5165627.ps1:11

我尝试了其他几种方法,即使我创建了变量和变量组,也试图覆盖值,但没有任何效果。即使我确实设置了“在队列时间可设置”框,也是如此。

1 个答案:

答案 0 :(得分:1)

通过

设置变量
Write-Host "##vso[task.setvariable variable=sauce]crushed tomatoes"

任务完成后将继续工作,Pipeline将读取控制台并设置变量,因此您可以在其他任何步骤中使用它。

因此,如果要打印,则必须在第一步中进行设置,而在另一步中进行使用。