Azure-创建布尔变量并跨多个任务使用它

Azure-创建布尔变量并跨多个任务使用它,azure,azure-devops,azure-pipelines,azure-pipelines-yaml,Azure,Azure Devops,Azure Pipelines,Azure Pipelines Yaml,我想为一个阶段定义一个布尔变量,并想在该阶段的一个任务中的另一个脚本中设置它(True/False),并想在其他后续任务中使用该变量作为条件,我该怎么做 我的azure管道是基于YAML的 我想为一个阶段定义一个布尔变量并设置 它(True/False)位于阶段中某个任务的另一个脚本中 并希望在其他后续操作中使用该变量作为条件 任务,我怎么做 这里有一个例子: stages: - stage: Build variables: Key : false jobs: - job

我想为一个阶段定义一个布尔变量,并想在该阶段的一个任务中的另一个脚本中设置它(True/False),并想在其他后续任务中使用该变量作为条件,我该怎么做

我的azure管道是基于YAML的

我想为一个阶段定义一个布尔变量并设置 它(True/False)位于阶段中某个任务的另一个脚本中 并希望在其他后续操作中使用该变量作为条件 任务,我怎么做

这里有一个例子:

stages:
- stage: Build
  variables: 
    Key : false
  jobs:
  - job: Build
    continueOnError: true
    steps:
    - script: echo Key:'$(Key)'

    - task: PowerShell@2
      inputs:
        targetType: 'inline'
        script: |
          # Write your PowerShell commands here.

          Write-Host "##vso[task.setvariable variable=Key;]true"

    - task: CmdLine@2
      inputs:
        script: echo Key:'$(Key)'

    - task: CmdLine@2
      condition: and(succeeded(), eq(variables['Key'], 'true'))
      inputs:
        script: |
          echo Write your commands here

          echo Hello world
我有一个阶段变量
Key
,其值为false。然后在PS任务中,我使用
task.setvariable
覆盖键的值注意:这样新值
true
就是作业范围值。如果您在一个阶段中有多个工作,这将无法正常工作

更新1:

- task: PowerShell@2
      inputs:
        filePath: 'Test.ps1'
My Test.ps1:

Write-Host "##vso[task.setvariable variable=Key;]true"

如果我的脚本类型是“文件路径非内联”怎么办?我想调用一个脚本,更新脚本中的变量,并在下一个任务中重用它set@BiswajitMaharana无论是内联还是文件路径,这两种方式都有效。如果您希望新值在阶段中的作业之间有效,请选中,设置
isOutput=true
就足够了。只需理解此处重写键的语法即可。如果我有多个变量,那么如何覆盖这两个变量呢。另外,如果您可以给出一个使用shell或perl脚本或任何其他脚本的文件路径示例,以及如何覆盖它们,我可以得到更多的澄清。只需在azure devops repos中创建一个脚本文件,将内容从内联脚本移到该脚本,它应该可以工作。您好,是否有针对此问题的更新?