Powershell Azure DevOps在通过脚本设置管道变量时是否删除引号?
我必须在Azure DevOps管道中为ARM模板设置一个数组。我将变量设置为:Powershell Azure DevOps在通过脚本设置管道变量时是否删除引号?,powershell,azure-devops,arm-template,Powershell,Azure Devops,Arm Template,我必须在Azure DevOps管道中为ARM模板设置一个数组。我将变量设置为: $foo = '["' + 'bar' + '"]' Write-Host $foo #######Assign Variables with Correct Value in pipeline Write-Host "##vso[task.setvariable variable=fooVariableInPipeline]$foo" $foo值很好,如预期的那样为[bar]。 但是当我在设置变量后的下一个
$foo = '["' + 'bar' + '"]'
Write-Host $foo
#######Assign Variables with Correct Value in pipeline
Write-Host "##vso[task.setvariable variable=fooVariableInPipeline]$foo"
$foo值很好,如预期的那样为[bar]。
但是当我在设置变量后的下一个任务中检查该值时,它会删除引号并将该值显示为[bar]
这很奇怪,我想知道是我还是一只虫子?有解决办法吗
目前,我已使用powershell代码直接更新了我的文件。您可以尝试使用以下字符串: $foo=@ [酒吧] @ Azure DevOps在通过脚本设置管道变量时是否删除引号 此问题并非来自azure devops,而是取决于下一个任务的语法 如果我使用命令行任务输出该变量,它可以正常工作:
echo $(fooVariableInPipeline)
输出:
但是,如果我们使用powershell任务输出它,它将删除引号:
Write-Host "fooVariableInPipeline is $(fooVariableInPipeline)"
输出:
要解决此问题,我们需要用单引号将变量括起来,使其成为文字字符串,如:
现在,它运行良好:
echo $(fooVariableInPipeline)
希望这能有所帮助。我自己也遇到过这个问题 解决方法是使用两个双引号 在powershell中:
$foo -replace '"', '""'
你能告诉我们接下来的任务是什么吗?问题是什么?下面的答案是否解决了您的问题,如果是,您可以,这样可以帮助其他社区成员解决同样的问题,我们可以存档此线程,谢谢。