将 groovy 地图传递到 powershell 脚本

问题描述 投票:0回答:1

我有一个 groovy 中的键值对集合,例如在 Jenkins 管道中

def procedureParameters = [:]
procedureParameters.put('key','value')

我正在尝试将其传递给 powershell 脚本 -

def exitCode = powershell """
    \$parameters = @{
        ${procedureParameters}
    }
"""

上面只是一个(不起作用)示例,但最终我想在 powershell 中有一个哈希表来反映我拥有的常规映射。

我将单个变量传递给 powershell 没有任何问题。但我找不到用集合来做到这一点的方法。在我开始将映射序列化为字符串然后在 powershell 端反序列化之前,有没有一种好方法可以做到这一点?

powershell jenkins-groovy
1个回答
0
投票

经过多次尝试和错误,这是一个可行的解决方案。它仍然需要将地图序列化为字符串。但至少powershell端不需要进一步处理。这就是常规的管道代码:

def powershellInput = "@{"

procedureParameters.each { key, value ->
    powershellInput += "\"$key\"=\"$value\"; "
}

powershellInput += "}"

powershell
"""
    [HashTable]$parameters = ${powershellInput}
"""

另一种选择是将其传递给环境变量中的 powershell。但我没能成功。

© www.soinside.com 2019 - 2024. All rights reserved.