1

我正在尝试使用“az pipelines variable-group variable create ...”命令来创建引用不同变量的变量。例如

az pipelines variable-group variable create --project MyTestProject -- 
group-id 15 --name ‘ApplicationName’ --value 'TestApp-$(env)' 

其中变量“env”在同一项目库中的变量组中定义。

当我运行上面的命令时,它给出了错误:

“Failed to load python executable” “exit /b 1”. 

尽管生成了错误,但仍会创建变量;在上面的示例中,变量“ApplicationName”的值为“TestApp-$(env”,后括号字符“)”缺失,似乎是导致问题的原因。

美元符号、“$”和/或左括号字符“(”在不使用右括号“)”时不会产生任何错误。

我尝试使用反斜杠“\”和插入符号“`”字符转义右括号字符,但找不到任何可以创建所需变量值“TestApp-$(env)”的组合。

有人可以告诉我如何转义右括号,以便在变量组中正确创建变量。

我正在运行以下版本的 az:

azure-cli                         2.0.73
command-modules-nspkg               2.0.3
core                              2.0.73
nspkg                              3.0.4
telemetry                          1.0.3
Extensions:
azure-devops                      0.12.0

Python (Windows) 3.6.6 

非常感谢,

加里

4

3 回答 3

3

我终于设法弄清楚如何转义名称本身包含不同变量名称的变量。通过调用 az cli 命令并将变量值用双引号和单引号括起来,可以在 DevOps 中正确创建变量:

pipelines variable-group variable create --project MyTestProject -- group-id 15 --name ApplicationName' --value '"TestApp-$(env)"' 

DevOps-LibraryVariable-screenshot

于 2019-09-25T13:21:25.500 回答
0

作为对该主题的进一步扩展,我需要将值作为变量传递。我的来源在一个键值对中。在这种情况下,我使用了以下内容。

$key = $var.Key
$value = '"{0}"' -f $var.Value
    
az pipelines variable-group variable update --group-id $groupId --org $org --project $project `
--name $key --value $value
于 2020-08-20T11:53:52.360 回答
0

这取决于您的操作系统和工具。

例如,在 Windows 操作系统中,您可以使用 %variable_name% 获取环境变量。因此,以下是正确的:

az pipelines variable-group variable create --project keyvault --group-id 1 --name "ApplicationName" --value "TestApp-%java_home%"

在此处输入图像描述

但是,在 PowerShell 中,您可以使用“$env:variable_name”获取环境。因此,以下是正确的:

az pipelines variable-group variable create --project keyvault --group-id 1 --name "ApplicationName2" --value "TestApp-$($env:java_home)"

在此处输入图像描述


更新:

因此,在 Azure Pipeline 中,您可以使用如下组变量:


pool: 
  name: Hosted VS2017
  demands:
  -  msbuild
  -  visualstudio
  -  vstest

variables:
  - group: vargroup

steps:
- task: AzureCLI@1
  inputs:
    azureSubscription: 'CSP Azure (e5b0fcfa-e859-43f3-8d84-5e5fe29f4c68)'
    scriptLocation: 'inlineScript'
    inlineScript: |
      echo the variable var1:%var1%

我有一个变量组:

在此处输入图像描述

你可以看到:echo the variable var1:%var1%将是echo the variable var1:value1

在此处输入图像描述

于 2019-09-19T05:26:55.630 回答