本文介绍了如何使用groovy env. Jenkins中的变量通过Jenkins管道中的bat命令传递的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have stage in my jenkinsfile, that executes a bat command:

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

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

My batch command requires a parameter that is the current branch in svn.

当我使用此功能时:

回显"SVN_BRANCH_NAME为$ {env.BRANCH_NAME}"

echo "SVN_BRANCH_NAME is ${env.BRANCH_NAME}"

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

It would give the value of BRANCH_NAME but if I pass it as param to my batch file, it literally pass ${env.BRANCH_NAME} not the value.

他们有办法做到这一点吗?

Is their a way to do this?

推荐答案

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

It's because all is wrapped in single quotes and groovy won't interpolate the string. Try

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

这篇关于如何使用groovy env. Jenkins中的变量通过Jenkins管道中的bat命令传递的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-01 22:11