问题
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()
}
}
回答1:
You can resolve this using either one of two methods, whichever suits you best:
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}"
Export your Jenkins variables as environment variables:
withEnv(["DESTINATION=$destination"]) { powershell ''' $destinationPath ="$env:DESTINATION" ... ''' }
来源:https://stackoverflow.com/questions/50547232/passing-jenkins-environment-variable-in-powershell-script