将值从PowerShell脚本任务(变量)传递到同一代理作业中的后续任务

时间:2019-10-29 07:29:11

标签: azure-devops azure-pipelines

我正在跟踪this链接以在一个任务中设置一个变量,以便可以在同一代理作业中的另一个任务中使用它。

在PowerShell脚本任务中,我正在使用跟踪。设置变量的行:

Write-Host "##vso[task.setvariable variable=sauce]crushed tomatoes"
  1. 链接的下一部分显示了如何读取变量-它具有参数和脚本。我必须在哪里输入参数?它是另一个PowerShell任务吗?下一部分建议当变量需要由另一个任务-https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=classic%2Cbatch#using-variables-as-task-inputs

  2. 使用时,我还需要设置isOutput=true
  3. 我对访问上述步骤中设置的变量感到困惑。如果我想在另一个PowerShell任务中获取值,或者要将值传递给另一个非Powershell任务,那么我应该使用$(sauce)还是$env:SAUCE来获取/发送值? p>

1 个答案:

答案 0 :(得分:0)

是的,您可以使用另一个PowerShell任务读取变量,简单的方法是:

  • 对于内联脚本:

    Write-Host $(sauce)

  • 对于文件脚本:

    Write-Host $env:sauce

您不需要添加isOutput=true

我的YAML:

steps:
- task: PowerShell@2
  displayName: 'Set var'
  inputs:
    targetType: filePath
    filePath: ./test.ps1

- powershell: |
   Write-Host $(sauce)
 displayName: 'Read inline'

- task: PowerShell@2
  displayName: 'Read from file'
  inputs:
    targetType: filePath
    filePath: ./read.ps1

文件test.ps1是:

enter image description here

文件read.pd1是:

enter image description here

构建输出为:

enter image description here