Nil*_*lay 8 powershell azure-devops azure-rm-template
我必须在 Azure DevOps 管道中为 ARM 模板设置一个数组。我这样设置我的变量:
$foo = '["' + 'bar' + '"]'
Write-Host $foo
#######Assign Variables with Correct Value in pipeline
Write-Host "##vso[task.setvariable variable=fooVariableInPipeline]$foo"
Run Code Online (Sandbox Code Playgroud)
$foo 值很好,如预期的那样是 ["bar"] 。但是,当我在设置变量后检查下一个任务中的值时,它会删除引号并将值显示为 [bar]。
这很奇怪,我想知道这是我的问题还是一个错误?有什么解决方法吗?
目前,我已经直接使用 powershell 代码更新了我的文件。
通过脚本设置管道变量时,Azure DevOps 是否会删除引号?
此问题并非来自 azure devops,而是取决于您下一个任务的语法。
如果我使用该command line任务输出该变量,它工作正常:
echo $(fooVariableInPipeline)
Run Code Online (Sandbox Code Playgroud)
输出:
但是,如果我们使用powershell任务来输出它,它将删除引号:
Write-Host "fooVariableInPipeline is $(fooVariableInPipeline)"
Run Code Online (Sandbox Code Playgroud)
输出:
为了解决这个问题,我们需要用单引号将变量括起来,使其成为文字字符串,例如:
$Testfoo= '$(fooVariableInPipeline)'
Write-Host "Testfoo is $Testfoo"
Run Code Online (Sandbox Code Playgroud)
现在,它工作正常:
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
6790 次 |
| 最近记录: |