我开始使用Jenkins,这是一个非常棒的工具。我们使用参数化构建,我们定义参数,如分支名称$ {Branch}(例如dev,release,main等)。
在构建配置中,我可以添加一个Windows批处理命令,有没有办法可以将这些参数传递给批处理命令?
我尝试传递“%$ {Branch}%”或“%Branch%”,但似乎无效。
有人可以帮忙吗?
非常感谢
答案 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 个参数!