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

如何在Jenkins Groovy中循环遍历Extended Choice参数执行命令

问题描述

我在Groovy文件中配置了如下Extended Choice参数:

extendedChoice(name: 'Subscription', defaultValue: 'demo_standard', description: 'Check mark on subscription/Part number', multiSelectDelimiter: ',', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_CHECKBOX', value: 'demo_standard,demo_advanced,trial_standard,trial_advanced,standard,advanced', visibleItemCount: 6),

当前通过如下语句调用该参数:

sh "./create.js ${params.Username} ${params.Subscription} "

我希望当选中2-6个Subscription选项时,上述sh命令能针对每个选中的订阅单独执行一次。例如选中"demo_advanced,trial_standard"时,需执行两次命令:

sh "./create.js ${params.Username} demo_advanced"
sh "./create.js ${params.Username} trial_standard"

请问如何在Groovy文件中实现该逻辑?

解决方案

你可以通过拆分订阅参数为数组,再循环遍历数组执行命令的方式实现需求,具体代码如下:

// 将选中的订阅字符串按分隔符拆分为数组
def subscriptions = params.Subscription.split(',')

// 遍历每个订阅,单独执行sh命令
subscriptions.each { sub ->
    sh "./create.js ${params.Username} ${sub.trim()}"
}

逻辑说明

  1. 拆分参数:利用Groovy的split(',')方法,将以逗号分隔的订阅字符串拆分成单个元素的数组,比如选中"demo_advanced,trial_standard"时,会得到['demo_advanced', 'trial_standard']。
  2. 循环执行:使用each遍历数组中的每个订阅项,对每一项单独执行sh命令;trim()用来避免可能存在的空格问题(比如参数前后意外出现的空格)。
  3. 兼容单选项场景:即使只选中1个订阅,这段代码也能正常执行一次命令,无需额外判断选中数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:18:37