6

i would like to use a jenkins environment variable inside a power shell script.Here ${destination} is coming as null inside powershell script.Not able to identify what is the mistake i am doing.Please help

# !/bin/groovy
pipeline {
    
    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()         
        }   
}
3
  • Instead of using ${destination} , use %destination% . Commented May 28, 2018 at 9:14
  • Possible duplicate of stackoverflow.com/questions/46473385/… Commented Sep 24, 2018 at 9:35
  • %destination% will not be resolved. Commented Jan 11, 2021 at 11:54

1 Answer 1

11

You can resolve this using either one of two methods, whichever suits you best:

  1. Use """ instead of ''' to be able to substitute destination with its value. When using this approach you should escape Powershell's variable identifiers to avoid unwanted substitutions, like so: \$destinationPath = "${destination}"

  2. Export your Jenkins variables as environment variables: withEnv(["DESTINATION=$destination"]) { powershell ''' $destinationPath ="$env:DESTINATION" ... ''' }

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.