我正在跟踪this链接以在一个任务中设置一个变量,以便可以在同一代理作业中的另一个任务中使用它。
在PowerShell脚本任务中,我正在使用跟踪。设置变量的行:
Write-Host "##vso[task.setvariable variable=sauce]crushed tomatoes"
链接的下一部分显示了如何读取变量-它具有参数和脚本。我必须在哪里输入参数?它是另一个PowerShell任务吗?下一部分建议当变量需要由另一个任务-https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=classic%2Cbatch#using-variables-as-task-inputs
isOutput=true
我对访问上述步骤中设置的变量感到困惑。如果我想在另一个PowerShell任务中获取值,或者要将值传递给另一个非Powershell任务,那么我应该使用$(sauce)
还是$env:SAUCE
来获取/发送值? p>
答案 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
是:
文件read.pd1
是:
构建输出为: