Azure DevOps发布管道-如何使用Azure Powershell在管道中的变量中设置和传递值

时间:2019-10-22 00:35:41

标签: azure azure-devops azure-pipelines-release-pipeline

借助Azure Release Pipeline,在使用PowerShell脚本的任务中,我能够设置变量的值并使用命令

传递给下一个任务
Write-Host '##vso[task.setvariable variable=varResourceExists;isOutput=true;something'

但是,当我在使用Azure PowerShell的任务中放置此类似命令时,不再允许该命令,该任务会产生警告:

  

2019-10-22T00:23:14.3080614Z ## [warning]'## vso [task.setvariable   variable = varResourceExists; isOutput = true;某些内容包含日志记录   命令关键字“ ## vso”,但这不是合法命令。请看   可接受的命令列表:   https://go.microsoft.com/fwlink/?LinkId=817296

因此,我的任务无法设置变量varResourceExists。我还通过

尝试了常规的PowerShell设置值
$varResourceExists = 'something'; # this also does not work

有没有一种方法可以在Azure Powershell脚本中设置此值,以便下一个任务可以引用它?

2 个答案:

答案 0 :(得分:2)

##vso[task.setvariable variable=varResourceExists;isOutput=true;something是不正确的语法。您缺少结尾]

应为##vso[task.setvariable variable=varResourceExists;isOutput=true;]something

答案 1 :(得分:0)

这是我解决主题的方法。在管道Azure PowerShell任务中,我可以使用诸如Write-Host '##vso[task.setvariable variable=varResourceExists;isOutput=true;]False';

这样的代码

在“输出变量”选项中,设置参考名称“ step1”: Output Variable 然后在下一步中,我可以使用“自定义条件”进行条件检查: Custom Condition

我还可以在代码中引用变量,例如Write-Host "The step1.varResourceExists says: $(step1.varResourceExists)";

相关问题