Jenkins to Powershell-我需要在传递的参数中转义美元符号吗?

时间:2019-07-09 14:28:02

标签: powershell escaping jenkins-pipeline

我有一个Jenkins管道,可以通过Powershell插件调用Powershell脚本。管道使用withCredentials将Powershell的用户/密码在SQL连接中使用到变量中。我将它们作为属性传递给命令:

def psCmd="./Set-CheckmarxTeams -server ${server} -jkuser $sqluser -jkpass $sqlpass"

脚本将它们定义为参数:

param ([string]$server='ad1hfddbst930\shared',[string]$jkuser,[string]$jkpass)

,但是使用$jkuser$jkpass的SQL连接失败。密码中间有一个$。我尝试Write-Host $jkpass,但只显示了$之前的部分,但之后没有任何内容。我需要在传递字符串之前对其进行修改吗?如果可以,怎么办?

1 个答案:

答案 0 :(得分:0)

“逃脱”美元符号既容易又容易知道。在这种情况下,@ Richard Schaefer需要传递包含美元符号的密码的整个字符串。

像这样将字符串存储在$jkpass变量中:

$jkpass = "thisisa$password"

将输出:thisisa

因此,用单引号存储密码可以消除此问题。

$jkpass = 'thisisa$password'

这将输出:thisisa$password