将参数从jenkins参数化构建传递给windows batch命令

时间:2014-06-26 12:00:33

标签: batch-file jenkins cmd

我开始使用Jenkins,这是一个非常棒的工具。我们使用参数化构建,我们定义参数,如分支名称$ {Branch}(例如dev,release,main等)。

在构建配置中,我可以添加一个Windows批处理命令,有没有办法可以将这些参数传递给批处理命令?

我尝试传递“%$ {Branch}%”或“%Branch%”,但似乎无效。

有人可以帮忙吗?

非常感谢

2 个答案:

答案 0 :(得分:28)

使用参数化构建,您需要定义参数。当您单击" Build"时,将提示您这些值。链接。

参数的名称应为普通名称,最好不要有空格,例如Branch。请勿在参数名称的定义中添加任何${}%%

构建步骤中,例如执行Windows批处理命令,您可以使用常规批处理语法引用该参数,例如%Branch%

如果您使用的是* nix机器,则可以使用执行shell 构建步骤,并使用常规bash语法引用该参数,例如${Branch}

请注意,即使在Windows上运行,很多Jenkins插件本身都会使用* nix语法中的参数,但执行Windows批处理命令将是类似批处理的,即%Branch%

因此,您可以尝试输入:
echo %Branch%

我还建议将set命令单独放在一行,它会显示构建过程中可用的所有环境变量,这非常有用。

答案 1 :(得分:0)

我不太明白你的意思是分支,因为我有点新,但是如果你在谈论如何像 yourcmd -a 那样做并让它运行与原始代码和 -b 不同的代码,这对我有用。 在目录中,使用您的参数名称创建两个文件 例如 -一只蝙蝠 -b.bat 您无需在其中编写任何代码。 在您的命令的代码中 例如 createfolder.bat 写

@echo off
if %~n1 == -a goto :aran
if %~n1 == -b goto :bran
:aran
Your first parameter code
cls
:bran
Your 2nd parameter code
cls

希望有帮助! 您甚至可以添加多达 50 个参数!