我正在使用一个简单的Jenkins脚本,该脚本从curl GET请求中获取结果,将其存储在变量中,然后将该值作为参数发送到批处理文件
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
bat """ "C:\\somepathto\\mybatchfile.cmd" "${response}" """
}
}
}
虽然回声显示了预期的React(body从服务器返回),在它未能正确传递到批处理文件后立即执行。如果我理解正确的话,因为response
包含带双引号的文本以及(例如json文件)它可能会破坏该行正确传递值的能力,并且使其分开,就好像响应中引号之间的每个单词都被解释为命令一样。
我一直无法找到解决这个问题的方法,也无法在网上找到解决方案。搜索这样的通用术语(jenkins escape double quote in string)导致的结果显示了如何在jenkins管道中手动转义静态字符串中的双引号,这不是我试图实现的。
如何使其正常工作?
2条答案
按热度按时间jogvjijk1#
你有没有试过用ecaped报价:
您还可以尝试以下操作:
“env.”是一个环境变量,可以在批处理中访问。
wfveoks02#
另一个可以尝试的选项,它将在您的响应中添加转义字符