在Powershell脚本中传递Jenkins环境变量

时间:2018-05-26 21:43:13

标签: jenkins jenkins-pipeline declarative

我想在power shell脚本中使用jenkins环境变量。这里的$ {destination}在powershell脚本中变为null。无法识别我正在做的错误。请帮助

!/ bin中/常规

管道{

agent {
    label {
        label ""
        customWorkspace "C:\\Jenkins\\workspace"
    }
}
environment {       

    def destination=''
}
options {
    timestamps()
    timeout(time: 60, unit: 'MINUTES')      
    skipDefaultCheckout(true)
    disableConcurrentBuilds()
 }

stages {

    stage('TEST') 
    {     
        steps {
                script{
                    destination="\\\\SERVERNAME\\d\$"
                }
                echo "${destination}"

                powershell '''

                    $destinationPath ="${destination}"

                    write-host $destinationPath

                    write-host "test3" '''

            }  
    }
}
post {
    always {
        deleteDir()         
    }   

}

1 个答案:

答案 0 :(得分:2)

您可以使用以下两种方法之一解决此问题,以最适合您的方式:

  1. 使用“”而不是'''能够用destination替换它的值。使用这种方法时,你应该转义Powershell的变量标识符,以避免不必要的替换,如:{{1 }}

  2. 将Jenkins变量导出为环境变量: \$destinationPath = "${destination}"