如何解决Atlassian Bamboo-插入具有“?”的变量字符串,可能是编码问题
我在使用的Powershell内联脚本中有一个脚本任务
$text2 = "isApproved=$isApproved"
然后我用
Out-File -FilePath "${bamboo.build.working.directory}\repovar.properties" -InputObject $text2 -Append -Encoding utf8
$isApproved
是在脚本中确定的,其值可以为0/1。
属性文件显示正确的键值对(isApproved=0
)。但是,当我运行注入竹节变量任务时,它会注入一个“?”变量名称中的符号
10-Aug-2020 05:17:58 key: [inject.?isApproved] value: [0] type: RESULT
这是一个特殊的问题,因为有时注射正确但有时没有。所有其他变量均以正确的格式注入。
当我将cmdlet中的-Encoding utf8删除为默认值(带有NoBOM的utf8)时,它会这样写
i s A p p r o v e d = 0
和像这样的竹子注射
bamboo.inject._i_s_A_p_p_r_o_v_e_d
我也尝试使用批处理脚本,但仍然看到一个'?'。有人可以帮我解决问题吗?
如果我切换到脚本文件而不是内联脚本,是否仍可以使用以前的注入变量?
解决方法
确实没有很好的记录-您需要用下划线替换点,例如,对于名为your.plan.variable的计划变量,在常规Bamboo任务中将其引用为$ {bamboo.your.plan.variable} ,分别。在脚本任务中使用的PowerShell语法为$ bamboo_your_plan_variable。
,我在Atlassian论坛上找到了答案,就在这里
Out-File -FilePath "${bamboo.build.working.directory}\repovar.properties" -InputObject $text2 -Append -Encoding ascii
将编码更改为ASCII可以解决问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。