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

如何在Azure DevOps流水线中定义列表变量供PowerShell调用

Azure DevOps多值列表变量定义及PowerShell访问方法

定义承载多值的列表类变量

Azure DevOps流水线原生没有专门的数组/列表类型变量,通用实现方式是将列表元素用统一分隔符拼接为字符串存储,使用时再拆分还原为数组,按定义方式分为两类:

经典UI发布流水线定义

  • 进入发布流水线编辑界面,打开「变量」标签页
  • 新增变量,例如命名为LanguageList,值填写用分隔符拼接的列表内容,示例:zh-CN,en-US,ja-JP,ko-KR,推荐用逗号、分号等无特殊含义的字符作为分隔符
  • 勾选「可在所有阶段使用」选项,保证多阶段都能读取到该变量

YAML流水线定义

直接在全局variables段声明即可,示例:

variables:
  # 全局多值列表变量,所有阶段/任务均可访问
  LanguageList: 'zh-CN,en-US,ja-JP,ko-KR'

如果需要跨流水线复用,也可以将该变量存入变量组,使用方式和普通字符串变量完全一致。

PowerShell中访问及遍历的语法

流水线变量传入PowerShell环境后为字符串类型,先拆分再遍历即可,有两种常用读取方式:

方式1:通过环境变量读取(推荐,inline和文件脚本都支持)

PowerShell会自动将流水线变量转为全大写、点替换为下划线的环境变量,示例代码:

# 读取变量并按逗号拆分为数组
$languages = $env:LANGUAGELIST -split ','

# 遍历列表执行逻辑
foreach ($lang in $languages) {
    Write-Host "当前处理语言:$lang"
    # 此处补充对应业务代码
}

方式2:通过流水线宏语法读取(仅支持inline脚本)

直接用$(变量名)的宏格式引用,在脚本执行前会自动替换为变量值:

$languages = '$(LanguageList)' -split ','
foreach ($lang in $languages) {
    Write-Host "当前处理语言:$lang"
}

注意:如果你的列表元素本身包含逗号,可以换用竖线|等其他分隔符,定义变量和拆分时统一分隔符即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:45:00