当前位置: 首页 > 面试题库 >

如何使用Groovy Env。Jenkins中的变量通过Jenkins管道中的bat命令传递

岳均
2023-03-14
问题内容

我的jenkinsfile中有一个执行bat命令的阶段:

stage ('build'){
  bat '%cd%\\MySimpleProject\\bin\\Execute.bat "${env.BRANCH_NAME}"'
}

我的批处理命令需要一个参数,该参数是svn中的当前分支。

当我使用这个:

回声“ SVN_BRANCH_NAME是$ {env.BRANCH_NAME}”

它会给出BRANCH_NAME的值,但是如果我将其作为参数传递给我的批处理文件,它将按字面意义传递$ {env.BRANCH_NAME}而不是该值。

他们有办法吗?


问题答案:

这是因为所有内容都用单引号引起来,并且常规不会对字符串进行插值。尝试

stage ('build'){ bat "%cd%\\MySimpleProject\\bin\\Execute.bat ${env.BRANCH_NAME}"}


 类似资料:
  • 问题内容: 是否有任何环境变量可用于获取Jenkins管道标题? 我知道我们可以使用它来获得自由职业的头衔,但是有什么可以用来获取管道名称的东西吗? 问题答案: 您可以使用相同的名称(例如或)从groovy访问相同的环境变量。 从文档中: 可以从Groovy代码中以env.VARNAME或仅以VARNAME的形式访问环境变量。您也可以写入这些属性(仅使用env。前缀): 这些定义也将在构建期间或构

  • 问题内容: 我最近将bash执行命令重写为Jenkins管道。旧代码就像 现在,我使用管道脚本来包装命令,像这样 但是,我遇到了一个错误。当我尝试时,它会正确显示。所以我怀疑内部有问题。 在使用管道之前,命令在外壳执行中工作正常。因此,源代码安装在Jenkins服务器上,似乎管道脚本不知道源命令是什么。 如何在sh wrapd块中运行source命令? 问题答案: 替换为 请注意,第一个点后有一个

  • 詹金斯·弗。2.176.1声明式管道,试图从一个阶段获得蝙蝠命令输出,以设置另一个阶段的代理标签, 当通过bat命令(“echo%computername%”设置变量时,我可以很好地从步骤中读取变量(我得到:V-COMP-S6-CI3,这正是我所需要的。) 我不能设法把它设置在代理标签中。当我尝试在另一个阶段设置代理{标签${winCompName}}时,我得到:没有标签为c:\jenkins\b

  • 问题内容: 有没有办法在Powershell脚本中使用Groovy变量?我的示例脚本如下。 问题答案: 您不能在单引号或三单引号中插入变量。使用三重双引号:

  • 我在Jenkins中写了一个Groovy DSL声明性管道脚本。该脚本在运行在Windows Server 2012上的从代理上执行。在这个代理机器上有一个命令行可执行文件,叫做。我使用Groovy的方法执行程序,并输入在构建时传递到管道中的参数。 该脚本很简单,分两个阶段执行以下操作 接受一个参数 从SVN签出一个项目 通过一个函数执行程序 我用的是Jenkins 2.235.3 可执行文件返回

  • 我有一个领事密钥AAA / BBB /测试密钥,如“1,2,3”,AAA / CCC /测试密钥,如“4,5,6”等。 我在几个作业之间有一个共享的 Jenkinsfile。 我不想在每一份工作中都使用Jenkinfile。我想通过工作名称访问密钥,但我无法实现。 如果我在 URL 中对密钥进行硬编码,它可以工作,例如 但是,当我尝试在URL中使用时,它不起作用: 如何访问使用Groovy脚本定义