如何:在Azure DevOps YAML中转义$(var)

如何:在Azure DevOps YAML中转义$(var),azure,azure-devops,azure-devops-yaml,Azure,Azure Devops,Azure Devops Yaml,我希望打印值1.0.0.1234&“$(buildSelected)”,而不是现在打印的值: variables: buildSelected: '1.0.0.1234' steps: - powershell: | Write-Host "Build Selected $(buildSelected)" Write-Host "Escaped '$(buildSelected)'" displayName: "Escape variable" 很抱歉

我希望打印值1.0.0.1234&“$(buildSelected)”,而不是现在打印的值:

variables:
  buildSelected: '1.0.0.1234'

steps:
  - powershell: |
      Write-Host "Build Selected $(buildSelected)"
      Write-Host "Escaped '$(buildSelected)'"
    displayName: "Escape variable"

很抱歉,Azure Devops没有提供转义管道变量的功能。如果变量以这种格式使用
$(var)
,则在使用
Write Host
输出变量时,它将始终替换为其值

正如我在Powershell语法中所知,只有`可以用于转义变量。见:

Build Selected 1.0.0.1234
Escaped '1.0.0.1234'
其输出:
buildSelected$(buildSelected)


不确定它是否是您需要的,但不支持使用complete
$(var)
转义管道变量。如果Azure Devops与
$(var)
格式匹配,它将始终使用其值替换它。

在此过程中是否收到任何错误消息?如果您添加一个额外的cmd任务来输出
BuildSelected
的值,该值是什么样子?@LanceLi MSFT无错误。仅参数中的值按原样赋值。进一步澄清了问题。您可能需要一些测试来检查$(buildToDeploy)的值是否成功传递给ps脚本。尝试在脚本中添加写入主机$newvalue,并检查它是否为空。在我的测试中,
-newValue'$(buildToDeploy)
可以很好地工作。所以你不需要使用“$#36;(buildToDeploy)“@LanceLi MSFT:我想要的是将文字字符串$(buildToDeploy)存储在变量(变量组)中。我不想存储$(buildToDeploy)的值,这就是现在正在发生的事情。您能分享一个关于yaml文件的最小示例吗?我尝试使用您的ps脚本,但有一个错误
在该对象上找不到属性“value”。请验证该属性是否存在并且可以设置。
我想我可能遗漏了一些内容。谢谢你,兰斯。
Write-Host "Build Selected `$`(buildSelected)"