Is there a way to use groovy variables inside a powershell script? My sample script is as following..
node {
stage('Invoke Installation') {
def stdoutpowershell
def serverName = env.fqdn
withEnv(['serverName = $serverName']) {
echo "serverName : $serverName"
stdoutpowershell = powershell returnStdout: true, script: '''
write-output "Server is $env:serverName"
'''
}
}
You can't interpolate variables in single quotes or triple-single-quotes. Use triple-double-quotes:
stdoutpowershell = powershell returnStdout: true, script: """
write-output "Server is $envserverName"
"""
There are two options for passing variables.
Add the complete script, see the below.
node {
stage('Invoke Installation') {
def stdoutpowershell
def serverName = "env.fqdn"
// Use Env export variable
withEnv(["SERVER_NAME=$serverName"]) {
stdoutpowershell = powershell returnStdout: true, script: '''
write-output "Server is $env:SERVER_NAME"
'''
}
println stdoutpowershell
// Use local variable
stdoutpowershell = powershell returnStdout: true, script: """
write-output "Server is ${serverName}"
"""
println stdoutpowershell
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With