首页 > 解决方案 > 此时字符串出乎意料

问题描述

我有以下功能:

function Add-Variable {
    Param
    (
        [Parameter(Mandatory=$true, Position=0)]
        [string] $ProjectName,

        [Parameter(Mandatory=$true, Position=1)]
        [string] $VariableGroupId,

        [Parameter(Mandatory=$true, Position=2)]
        [string] $VariableName,

        [Parameter(Mandatory=$true, Position=3)]
        [string] $Value,

        [Parameter(Mandatory=$false, Position=4)]
        [bool] $IsSecret = $false

    )

    Write-Host
    Write-Host "Adding $($VariableName) variable..."
    $DeploymentPath = az pipelines variable-group variable create --project $ProjectName --group-id $VariableGroupId --name $VariableName --value $Value | Null-Check $VariableName
}

我多次调用此函数,例如

Add-Variable $ProjectAlias $GlobalVarGroup.id 'Deployment.Path' 'D:\Websites\$(Hostname)'
Add-Variable $ProjectAlias $GlobalVarGroup.id 'Apppool.Username' $IISUser

但是,当我拨打以下电话时:

Add-Variable $ProjectAlias $GlobalVarGroup.id 'Log.Path' '\\svr-prdfs\$(ASPNETCORE_ENVIRONMENT)\Logs\$(Hostname)\$(Agent.MachineName)'

我收到此错误:

az : \Logs\$(Hostname)\$(Agent.MachineName) was unexpected at this time.
At C:\Users\richa\OneDrive\Documents\Azure CLI\helpers.ps1:24 char:23
+ ... ymentPath = az pipelines variable-group variable create --project $Pr ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (\Logs\$(Hostnam...d at this time.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

我想知道这是否是由于传递的字符串包含诸如 之类的值$(Agent.MachineName),但是,我将它们用单引号传递,因此我希望它们被评估为文字字符串。

除此之外,上面的调用在'D:\Websites\$(Hostname)'作为参数传递的地方起作用,所以这似乎与这个理论相矛盾。

有谁知道这里的问题是什么?

这是我要实现的目标的示例-这是我手动输入到 azure devops 中的内容,并希望通过 azure cli 执行此操作。 在此处输入图像描述

标签: powershellazure-cli

解决方案



推荐阅读