批处理文件中的 Bamboo 变量替换
Posted
技术标签:
【中文标题】批处理文件中的 Bamboo 变量替换【英文标题】:Bamboo variable replacement in batch file 【发布时间】:2012-08-30 12:33:19 【问题描述】:我们在 Windows 机器上运行 Atlassian 的 Bamboo 构建服务器 4.1.2。我创建了一个在任务中执行的批处理文件。该脚本只是在 .bat 文件中引用,而不是在任务中内联。 (例如 createimage.bat)
在 createimage.bat 中,我想使用 Bamboo 的 PLAN 变量。通常的变量语法不起作用,意味着没有被替换。例如,脚本中的一行可以是:
goq-image-$bamboo.INTERNALVERSION-SB$bamboo.buildNumber
有什么想法吗?
【问题讨论】:
我找到了这篇文章:answers.atlassian.com/questions/66109/… 【参考方案1】:您正在使用内部 Bamboo variables 语法,但 Script Task 将它们传递到操作系统的脚本环境中,并且需要相应地使用相应的语法来引用它们,例如(请注意术语之间的下划线):
Unix -goq-image-$bamboo_INTERNALVERSION-SB$bamboo_buildNumber
Windows - goq-image-%bamboo_INTERNALVERSION%-SB%bamboo_buildNumber%
令人惊讶的是,我找不到 Windows 版本的官方参考,现在只有 Using variables in bash:
Bamboo 变量导出为 bash shell 变量。所有句号 (句点)转换为下划线。例如,变量 bash.bamboo.my.variable 是 $bamboo_my_variable。这与 文件脚本任务(不是内联脚本任务)。
但是,我在某些时候从 Atlassian 的文档中找到了 Windows 语法,并按照Bamboo Variable Substitution/Definition 中的说明对其进行了测试和使用:
例如,这些变量也可用作脚本任务中的环境变量,尽管名称略有不同,例如 $bamboo_custom_aws_cfn_stack_StringWithRegex (Unix) 或 %bamboo_custom_aws_cfn_stack_StringWithRegex% (Windows)
【讨论】:
我知道这已经有一段时间了,所以也许事情已经改变了。我在批处理文件中尝试了 %bamboo_buildNumber% 和 %bamboo.buildNumber%,但结果是一个空字符串。 @TigersEye120 刚刚在 Bamboo 中测试了我的脚本,它正在运行。在 Bamboo 中,您的脚本应该是%bamboo_buildNumber%
,但要在批处理文件中使用此变量\参数,您需要在从 Bamboo 调用批处理文件时传递它。 Bamboo 语法(如果我理解正确的话)不适用于 Bamboo 范围/计划之外。以上是关于批处理文件中的 Bamboo 变量替换的主要内容,如果未能解决你的问题,请参考以下文章