我在jenkinsfile中有一个stage,它执行一个bat命令:
stage ('build'){
bat '%cd%\\MySimpleProject\\bin\\Execute.bat "${env.BRANCH_NAME}"'
}
我的批处理命令需要一个参数,这个参数是svn中的当前分支.
当我使用这个:
回显“SVN分支名称是${环境分支名称}”
它会给予分支_NAME的值,但是如果我将它作为参数传递给我的批处理文件,它会直接传递${env.BRANCH_NAME}而不是值。
是他们这样做的一种方式吗?
2条答案
按热度按时间htrmnn0y1#
这是因为所有内容都用单引号括起来,groovy不会插入字符串。
iyr7buue2#
我 遇到 了 类似 的 问题 , 在 Jenkins 中 运行
bat
时 , 我 无法 将 变量 传递 到 命令 中 , 它 将 按 原样 打印 变量 。 例如 , ${env.P4_CHANGELIST} 将 按 原样 打印 , 而 没有 实际 的 更改 列表 。中 的 每 一 个
问题 是
${env.P4_CHANGELIST}"
没有 传入 更改 列表 , 而是 保持 自己 为 空 。 正如@shipperizer 所说 , 这 是 由于 用 单 引号 Package 。 然而 , 他 的 解决 方案 并 不 适合 我 的 需要 。格式
三 重 引号 用于 传入 变量 , 因此 它 现在 是
Win64_Development_1234