如何使用 Powershell 设置 Azure DevOps 管道变量

How to set Azure DevOps pipeline variable with Powershell

我目前在我的发布管道中有一个变量,需要通过 Powershell 脚本设置它的值。目的是让它的值可用于下一个任务中的邮递员收集。

我正在尝试以这种方式执行此操作,但无法正常工作。

$content = Get-Content -Path .\token.txt

Write-Host "RP token found: $content"

Write-Host "##vso[task.setvariable variable=readingProgressToken;]$content"

Write-Host "Variable value in pipeline: $(readingProgressToken)"

这是变量 variable

使用设置变量命令将使该变量可用于随后的所有任务步骤。它不会在同一任务的范围内可用。如果您将您的任务分成两步,一组然后一个测试显示,我希望您会看到邮递员步骤的设置可能是 as-expected。

来自documentation

To set a variable from a script, use the task.setvariable logging command. This doesn't update the environment variables, but it does make the new variable available to downstream steps within the same job.

在脚本任务(PowerShell、Bash等)中,如果您使用日志记录命令SetVariable创建或更新具有指定值的变量,则此变量将具有新的值仅对同一作业中的后续任务可用。

对于运行SetVariable命令的脚本任务,新值不可用。

所以,如果你想打印变量的新值,你应该在脚本任务之后的另一个任务中打印它。