首页 > 解决方案 > Bamboo 变量不接受空格?

问题描述

我有一个从 Bamboo 触发的 PowerShell 脚本,该脚本基本上接受 3 个字符串参数:

Param([string]$language, [string]$architecture ="x64", [string]$version)

$x64Path = "some path..."
$x86Path = "some path.."
$arguments = $language,$architecture,$version

If($architecture -eq "x64") {
    Write-Host "Executing:" $x64Path" at x64 using" $language "and" $version
   # & $x64Path $arguments
} 
Else {
   Write-Host "Executing:" $x86Path "at x86 using" $language "and" $version
  # & $x86Path $arguments
}

如果我从 ISE 运行 PowerShell 脚本,例如:

.\MyScript.ps1 "JPN" "x64" "AB 6.0 R"

我会正确地得到这个输出:

Executing: some path... at x64 using JPN and AB 6.0 R

我在 Bamboo 中创建了一个计划,其中包含以下内容:

变量

在此处输入图像描述

任务

在此处输入图像描述

我尝试将变量(参数)添加为:

"${bamboo.Language}" "${bamboo.Architecture}" ${bamboo.Version}

以及:

"${bamboo.Language}" "${bamboo.Architecture}" "${bamboo.Version}"

但我总是得到相同的输出:

Executing: some path... at x64 using JPN and AB

请注意,最后一个变量已被删除(我没有得到完整的AB 6.0 R

这是 Bamboo 中的错误,还是我做错了什么?还是有解决方法?

PS。为了在 Bamboo 中实现这个运行(通过给变量值),我运行的计划如下: 在此处输入图像描述

标签: powershellargumentscommand-line-argumentsbamboo

解决方案


我怀疑在竹子中进行变量替换后引号会被剥离(即在参数传递给powershell之前)。

向具有空格的参数添加一组内部单引号:

"${bamboo.Language}" "${bamboo.Architecture}" "'${bamboo.Version}'"

推荐阅读