Azure DevOps条件can';t计算Powershell集合变量

Azure DevOps条件can';t计算Powershell集合变量,azure,powershell,azure-devops,Azure,Powershell,Azure Devops,我有一个powershell脚本,它不在作业、任务或阶段中,而是独立的。在我的DevOps中运行构建yaml,如下所示: - powershell: | if (//something that's irrelevant) { Write-Host "##vso[task.setvariable variable=myCustomVar;isOutput=true]true" } else { Write-Host "##vso[task

我有一个powershell脚本,它不在作业、任务或阶段中,而是独立的。在我的DevOps中运行构建yaml,如下所示:

- powershell: |
   if (//something that's irrelevant) {
    Write-Host "##vso[task.setvariable variable=myCustomVar;isOutput=true]true"
   } else {
    Write-Host "##vso[task.setvariable variable=myCustomVar;isOutput=true]false"
   }
在这个powershell脚本之后,我有另一个脚本来回显myCustomVar,以查看值是什么。像这样:

- script: |
    echo "What is my custom variable?"
    echo $(myCustomVar)
当构建运行时,在devops日志中,它会按字面意思回显“$(myCustomVar)”,而不是True/False

之后,我有一个发送电子邮件的任务,但我们只想在
myCustomVar
为真时发送电子邮件。所以我用了一个条件

- task: SendEmail@1
  displayName: "Send email"
  condition: and(succeeded(), eq(variables.myCustomVar, true))
然而,这是突破性的。我试过其他几种方法
myCustomVar
,在任务条件下,总是返回NULL。有语法方面的帮助吗

您可以使用
##vso[task.setvariable]value
从管道中的脚本设置变量。第一个任务可以设置变量,后面的任务可以使用该变量。该变量作为环境变量公开给以下任务

查看以下有用的链接:


Set Variable
只会影响正在运行的PowerShell任务的本地范围-您需要从脚本内部设置管道变量。我了解到这一点,但这似乎只适用于作业和阶段,我没有实现。我已经尝试实现了这一点。请参阅更新的帖子。请尝试
$env:myCustomVar
。您的问题进展如何?问题解决了吗?