Jenkins管道脚本在文件中写入变量值

Jenkins管道脚本在文件中写入变量值,jenkins,groovy,jenkins-pipeline,devops,jenkins-groovy,Jenkins,Groovy,Jenkins Pipeline,Devops,Jenkins Groovy,我正在从凭证存储中提取用户名/密码,并将其分配给一个变量。我想把这个值写在一个文件中。 我正在使用以下代码: for (creds in jenkinsCredentials) { if(creds.id == "credential"){ def password = creds.password println(creds.username) println(password)

我正在从凭证存储中提取用户名/密码,并将其分配给一个变量。我想把这个值写在一个文件中。 我正在使用以下代码:

for (creds in jenkinsCredentials) {
            if(creds.id == "credential"){
            def password = creds.password
            println(creds.username)
            println(password)
            writeFile file: '\\Jenkins_Home\\workspace\\test\\test.properties', text: 'pass=${password}'
    
它打印密码的值。 但是它只写pass=${password},而不是密码的值

如何在文件中写入变量值?

使用双引号(“)而不是单引号(”),如下所示:

writeFile file: "\\Jenkins_Home\\workspace\\test\\test.properties", text: "pass=${password}"

由于某些原因,管道groovy脚本在单引号(')方面存在一些问题。

请尝试Sriram提到的双引号。他认为管道groovy脚本在单引号方面存在问题是正确的

还发现有时双引号也可能是一个问题,它们必须转义(\“”)。看你怎么走

我还有另一个解决方案,您可以将进入文件的文本定义为变量,并将writeFile参数括在括号中,请参见以下内容:

in jenkinsCredentials) {
        if(creds.id == "credential"){
        def password = creds.password
        println(creds.username)
        println(password)
        def pass = "pass=" + password
        writeFile (file: '\\Jenkins_Home\\workspace\\test\\test.properties', text: pass)

我想提取另一个密码并将该密码附加到test.properties文件中。我想提取另一个密码并将该密码附加到test.properties文件中。我不明白你的问题。是否要在与上面相同的循环中更新密码?