Jenkins含多个输入文本时如何将值传递到Windows命令提示符构建阶段(Groovy脚本)
Jenkins动态输入框值传递到Windows CMD构建步骤解决方案
1. 调整Groovy渲染逻辑
在Active Choices Reactive Reference Parameter的Groovy脚本中,给每个动态生成的输入框设置符合Jenkins参数命名规范的唯一name属性,name值就是后续调用时的参数名,示例脚本如下:
// 替换为你自己的Active Choice多选项参数名 def selectValue = YOUR_MULTI_SELECT_PARAM def outputHtml = "" switch(selectValue) { case "对应触发选项1": // 输入框name设为INPUT1、INPUT2,后续直接用该名称调用参数值 outputHtml += '<p>配置1:<input type="text" name="INPUT1" placeholder="请输入值1"></p>' outputHtml += '<p>配置2:<input type="text" name="INPUT2" placeholder="请输入值2"></p>' break case "对应触发选项2": outputHtml += '<p>配置3:<input type="text" name="INPUT3" placeholder="请输入值3"></p>' break // 自行补充其他分支逻辑 } return outputHtml
2. 修改参数配置项
打开Active Choices Reactive Reference Parameter的配置页:
- 选择参数类型为 Formatted HTML
- 勾选 Return parameter value 选项,确保输入框的值会被Jenkins识别为全局构建参数
3. Windows CMD构建步骤调用
构建阶段的CMD脚本中直接使用%参数名%格式调用对应输入框的值即可,示例命令:
:: 输出INPUT1和INPUT2的输入值 echo %INPUT1% %INPUT2% :: 带空格的参数值建议加引号避免截断 echo "%INPUT1%" "%INPUT2%"
注意事项
- 所有动态生成的输入框name不能和Jenkins任务已有的其他参数重名,否则会出现参数值覆盖
- 若多选项同时触发多组输入框,需保证所有输入框的name全局唯一
- 可选参数可以加CMD判断逻辑避免输出无效值:
if defined INPUT1 echo %INPUT1%
内容的提问来源于stack exchange,提问作者Vimantha Perera
相关产品推荐
相关产品推荐

