You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在自定义PowerShell脚本中使用Azure DevOps库变量组的值

在Azure DevOps自定义PowerShell脚本中使用库变量组变量

步骤1:确认变量组内的变量

先确保poctest变量组中已创建好你需要的变量(比如Name1、Name2,名称可自定义)。

步骤2:修改YAML任务传递变量组变量

将PowerShell任务参数里的参数引用替换为变量组变量的引用,Azure DevOps支持两种引用方式:

方式1:宏语法(运行时解析,最常用)

用$(变量名)的格式引用,适合绝大多数场景:

parameters:
  - name: Name1
    displayName: 'Name1'
    type: string
    values: 
     - test01

  - name: Names2
    displayName: 'Name2'
    type: string
    values: 
     - rgp01
     - rgp02
     - rgp03

variables:
- group: poctest

- task: PowerShell@2
  inputs:
    targetType: 'filePath'
    filePath: 'pwsh/connection.ps1'
    arguments: |
      -Name1 $(Name1)
      -Name2 $(Name2)

方式2:模板表达式语法(编译阶段解析)

如果需要在模板编译时就确定变量值(比如用于条件判断),可以用${{ variables.变量名 }}:

- task: PowerShell@2
  inputs:
    targetType: 'filePath'
    filePath: 'pwsh/connection.ps1'
    arguments: |
      -Name1 ${{ variables.Name1 }}
      -Name2 ${{ variables.Name2 }}

步骤3:在PowerShell脚本中接收变量

确保connection.ps1脚本已定义对应参数来接收传递的值,示例如下:

param(
    [string]$Name1,
    [string]$Name2
)

# 直接使用变量
Write-Host "获取到的Name1值:$Name1"
Write-Host "获取到的Name2值:$Name2"

注意事项

  • 若变量组内是秘密变量(如密钥、密码),Azure DevOps会自动隐藏其值,引用方式和普通变量一致,日志中会显示为***。
  • 若存在变量命名冲突,可给变量组添加前缀区分:
    variables:
    - group: poctest
      name: 'poctest.'
    
    引用时使用$(poctest.Name1)即可避免冲突。

内容的提问来源于stack exchange,提问作者pks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 05:55:06