Jenkins:在参数化作业中逃避%

时间:2014-09-25 15:32:44

标签: jenkins

我尝试从shell运行此命令作为Windows机器上的构建步骤:

  

表示/ R. (* .bin)中的%f复制"%f" " .. \推出\"

经过一段时间努力弄清楚它为什么不起作用后,我注意到这是一个参数化的构建,参数的格式为%var%。我假设试图用空值替换%,因为没有定义任何东西。它被翻译成第一个循环:

  

表示/ R. F" " .. \推出\较新\"

我想我可以定义像%f%=%f这样的参数,它可能会做到这一点,但似乎没必要。

1 个答案:

答案 0 :(得分:1)

首先,我假设您正在使用Windows环境(您应该真正指定),因此它不是" shell"构建步骤,但是"执行Windows批处理命令"构建步骤(如果不是,则需要使用"执行Windows批处理命令"构建步骤)

接下来,它是Windows批处理的特性,当您从命令行运行它时,您可以在%语句中使用单个FOR,但是当您从批处理文件(批处理构建步骤 是一个临时批处理文件),您需要使用%%注意,这仅适用于FOR语句,因为它使用特殊的变量语法。

所以将你的行改为:

for /R . %%f in (*.bin) do copy "%%f" "..\Release\"