我正在尝试解析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
之前将其解析请尽可能帮助我。
答案 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"