Well here is another example of how to use variables and what can trip you up.
The key in this example is the scope of a variable, whether it is available outside a job and the syntax to access it
Variables local to the Job
So, if you create your variable as shown below
write-host "##vso[task.setvariable variable=standardvar]$MyPowerShellVar"
It is only available in the current job in the form $(standardvar)
Variable with a wider scope
If you want it to be available in another job, or stage you have to declare it thus, adding ;isOutput=true
write-host "##vso[task.setvariable variable=stagevar;isOutput=true]$MyPowerShellVar"
But there is also a change in how you access it.
- You need to give the script that declares the variable a name so it can be referenced
- You need to add dependons associations between stages/jobs
- And the syntax used to access the variable changes depending on whether you are in the same job, same stage but a different job or a completely different stage.
Below is a fully worked example