Azure DevOps - Setting and Using Variables in PowerShell Scripts

后端 未结 2 981
既然无缘
既然无缘 2021-02-05 10:08

I have an Azure DevOps build pipeline that has two separate PowerShell scripts. In the first script, I am getting a value from an XML file and setting that value in an environme

2条回答
  •  谎友^
    谎友^ (楼主)
    2021-02-05 10:20

    Script 1

    Use quotes when setting the environment variable via task.setvariable since # signifies a PowerShell comment. You have commented out the string you intend to output.

    Also note that the environment variable may not be available in the script where you set it since the pipeline must first process task.setvariable in the output.

    $myXml = [xml](Get-Content ./MyXml.xml)  
    $departmentId = $myXml.Department.Id
    
    Write-Host "##vso[task.setvariable variable=DepartmentId;]$departmentId"
    Write-Host "Set environment variable to ($env:DepartmentId)"
    
    Get-ChildItem Env:
    
    Write-Host "Department Id ($departmentId)"
    

    Script 2

    You must still reference variables via $ inside an expression. You're missing $ before env.

    Write-Host "Using Department: $($env:DepartmentId)"
    

提交回复
热议问题