Jenkins参数值无法解析为bat命令

时间:2020-08-24 17:05:50

标签: jenkins

我正在尝试解析Windows路径中的参数,所以我们可以这样做。

def Job_Name=params.Job_Name

pipeline {
    agent none
    options { 
        skipDefaultCheckout() 
    }
    stages {
    
    stage("Export_Package"){
            agent {
                label 'xxxxx'
            }
            steps{
                bat 'E:\\sashome\\SASPlatformObjectFramework\\9.4\\ExportPackage -user "xxxxx" -password "xxxxxx" -host "xxxxxxx.com" -port "1234" -package "E:\\sasconfig\\Lev1\\SASApp\\SASEnvironment\\SASCode\\Jobs\\Devops_EportJobs\\"${Job_Name}".spk" -objects "/Shared Data/Jenkins" -subprop "${Job_Name}".subprop'

            }
            
        }
       
    }
}

我们可以在路径内这样称呼“ $ {Job_Name}”吗?如果没有,请让我知道如何完成同样的工作。我只想在路径内传递Job_Name,这样就不必对job_Name.spk进行硬编码,也可以使其保持动态。无论我要传递的Job_name为何,它都应该选择该参数并在.spk

之前将其解析

请尽可能帮助我。

1 个答案:

答案 0 :(得分:0)

阅读groovy字符串基础知识: https://groovy-lang.org/syntax.html

基本上,当您应该使用双引号时,会将参数用单引号引起来。然后,在使用双引号时,请转义参数本身内的所有双引号:

bat "E:\\sashome\\SASPlatformObjectFramework\\9.4\\ExportPackage -user \"xxxxx\" -password \"xxxxxx\" -host \"xxxxxxx.com\" -port \"1234\" -package \"E:\\sasconfig\\Lev1\\SASApp\\SASEnvironment\\SASCode\\Jobs\\Devops_EportJobs\\\"${Job_Name}\".spk\" -objects \"/Shared Data/Jenkins\" -subprop \"${Job_Name}\".subprop"

通过阅读注释,看来这就是您想要的(删除Job_Name变量周围的文字引号):

bat "E:\\sashome\\SASPlatformObjectFramework\\9.4\\ExportPackage -user \"xxxxx\" -password \"xxxxxx\" -host \"xxxxxxx.com\" -port \"1234\" -package \"E:\\sasconfig\\Lev1\\SASApp\\SASEnvironment\\SASCode\\Jobs\\Devops_EportJobs\\${Job_Name}.spk\" -objects \"/Shared Data/Jenkins\" -subprop ${Job_Name}.subprop"