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可以解决问题。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...