powershell - 此时字符串出乎意料
问题描述
我有以下功能:
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 执行此操作。
解决方案
推荐阅读
- asp.net-core - 开迪克特。将自定义声明保存到 AspNetUserClaims 表
- performance - 在 DynamoDB 中查询最新项目和正确使用分区键
- apache - 限制对虚拟主机的访问
- r - 如何在 R 中为图形排序观察结果?
- networking - 如何在不部署代理的情况下从云端收集事件日志?
- python - 在 csv/df 中选择具有不同标题的特定列 python
- javascript - 三.js 从 ObjLoader 操作一个对象
- c++ - 如何避免包含文件由于模板类而传播
- .net - 上传 SSRS 报告会导致数据源需要凭据
- oracle - 返回当月的记录 + 6