azure-pipelines - 动态获取 Azure 管道变量值
问题描述
我为我的管道定义了一个变量,看起来像这样
My Username-key
具有一些不重要的价值。My Username
这是我帐户的名称,等于$(build.QueuedBy)
.
我想在我的任务中引用它,如下所示:
- task: PowerShell@2 #CmdLine@2
inputs:
targetType: inline
script: |
$key= "$(build.QueuedBy)".replace(" ","") + '-KEY'
echo $key | Invoke-Expression
我得到的是一个看起来像这样的错误:
Invoke-Expression : The term 'MyUsername-KEY' is not recognized as the name of a cmdlet, function, script
...
如何以与直接执行时相同的方式动态获取上例中的变量值
echo $(MyUsername-KEY)
解决方案
形式的变量表达式在脚本执行之前$(MyUsername-KEY)
被评估。所以没有办法以这种形式动态地使用它们。但是您可以利用管道变量也作为环境变量公开的事实。您可以像这样动态获取环境变量的值:
(get-item "env:$key").value
如果你需要调试它,你可以得到所有环境变量的列表:
ls env:
推荐阅读
- sql - 如何找到总工作日或总工作时间?
- linux - 如何使用 bb 文件为 adb 二进制文件提供可执行权限
- sql - 查询以查找表值中的不同行
- node.js - AssertionError [ERR_ASSERTION]:子进程配置错误
- postgis - 如何在 deck.gl 中将超集数据显示为多边形
- python-3.x - IndexError:索引 21 超出轴 1 的范围,大小为 21 和索引问题
- powershell - PowerShell逐行读取csv列和相邻单元格
- mysql - Joomla 错误:表 'sitename.#__template_styles' 不存在:表 'sitename.#__extensions' 不存在
- javascript - 按对象按数组对象分组
- sql - 在 SQL Server 中对聚合执行“任何”的方法