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

如何在Jenkins中向批处理文件传递含双引号的参数?

解决Jenkins传递含双引号的JSON参数给批处理的问题

问题根源是Windows批处理的参数解析规则:当参数包含双引号时,直接传递会导致内部引号被当作参数分隔符,拆分原本的完整内容。要解决动态内容的引号转义问题,只需在Jenkins脚本中对返回的JSON字符串做批量替换,把每个双引号替换成两个连续双引号(批处理的转义规则)。

修改后的完整脚本如下:

stage('test-stage') {
    steps {
      script {
          final String response = bat(script:'curl -X "GET" "www.someworkingurl.com" -H "accept: application/json"', returnStdout: true).trim()
          echo response
          // 转义字符串中的双引号,适配Windows批处理参数要求
          final String escapedResponse = response.replace('"', '""')
          bat """ "C:\\somepathto\\mybatchfile.cmd" "${escapedResponse}" """
      }
    }
}

原理说明

Windows批处理中,用双引号包裹参数时,参数内部的双引号必须用""(两个连续双引号)来转义。这样批处理会将整个转义后的字符串识别为单个参数,并且在读取参数(比如用%1)时,自动把""还原为单个",保证JSON内容的完整性。

比如原JSON内容{"name":"test"},转义后变为{""name"":""test""},传递给批处理后,%1获取到的内容就是原始的{"name":"test"}。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:55:20