我有一个詹金斯(Jenkins)工作,负责检查文件版本...
该项目已参数化:
Multi-line String Parameter = server
Powershell命令
$servers = ($env:servers).Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries)
foreach ($server in $servers) {ls "\\$server\c$\update.dll" | % versioninfo}
我使用URL触发它:
http://MY_JENKINS_SERVER/job/FILE_VERSION/buildWithParameters?servers=10.10.10.1
它有效,我得到:
ProductVersion FileVersion FileName
-------------- ----------- --------
11.1.1.16 11.1.1.16 \\10.10.10.1\c$\update.dll
但是我想在触发URL中发送多个IP,例如
10.10.10.1
10.10.10.2
10.10.10.7
所以我输出类似:
ProductVersion FileVersion FileName
-------------- ----------- --------
11.1.1.16 11.1.1.16 \\10.10.10.1\c$\update.dll
11.1.1.15 11.1.1.15 \\10.10.10.2\c$\update.dll
11.1.1.15 11.1.1.15 \\10.10.10.7\c$\update.dll
有人知道吗?
答案 0 :(得分:1)
由于使用的是“多行字符串参数”,因此必须提供所有必需的值,并用换行符分隔。通常,\ n被视为换行符,但是,您将不得不“转义”它。将此%0A用作换行符。
因此,您的POST URL应该是这样的:
curl -v -X POST <jenkins_url>/<job_name>/buildWithParameters?server=11.1.1.16%0A11.1.1.15%0A11.1.1.15
有关转义字符的更多参考:https://www.w3schools.com/tags/ref_urlencode.asp