gpt4 book ai didi

powershell - 在脚本中动态设置 Azure DevOps 变量

转载 作者:行者123 更新时间:2023-12-02 23:07:28 32 4
gpt4 key购买 nike

我有 n 个变量需要在发布管道中分配为 Azure DevOps 变量,但似乎我没有正确使用语法。

变量可能具有不同的值(变量名称),因此它们可以是:
- {指南 1}
- {指南 2}
...

所以我不会在运行之前知道它们。问题是似乎所有的 vso[task.setvariable] 示例都使用静态变量名,但我需要动态设置它。

以下是应该有效但无效的方法:

 Write-Host "##vso[task.setvariable variable=$($myVariable)]$($myValue)"

我也试过只使用 [Environment]::SetEnvironmentVariable (with user) 并且它似乎并没有在同一工作中的两个不同任务中持续存在。
[Environment]::SetEnvironmentVariable($myVariable, $myValue, 'User')

(在后续任务中为空)

有什么方法可以动态创建在任务之间持续存在的发布变量?我试图在开发者社区中搜索并找到一个问题,但没有答案。

最佳答案

实际上看起来问题不在于未设置变量,而是在使用 task.setvariable 后,该变量将仅在后续任务中可用(而不是当前任务中)。

所以我想说这是在 Azure DevOps 中设置变量的最佳方式:

当需要在同一任务/脚本步骤中使用变量时,请使用:

[Environment]::SetEnvironmentVariable(...)

或者只是在 PowerShell 中使用一个变量。

当需要使用多步变量时,使用:
$myVariable = "some name"
$myValue = "some value"

# Note that passing in $($variableName) should work with this call
Write-Host "##vso[task.setvariable variable=$($myVariable)]$($myValue)"

# Note that trying to use a Write-Host for $env:myVariable will return empty except in tasks after this one
Write-Host "Setting $($myVariable) to $($myValue)

关于powershell - 在脚本中动态设置 Azure DevOps 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58813136/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com