问题描述
我想根据我在 powershell 中的参数解析以下模板。
param(
[string]$servicePrincipalId="e90a1407-55c3-432d-9cb1-3638900a9d22",[string]$azureSubscriptionId="123",[string]$resourceGroupName=245,[string]$vnetName=456
)
Write-Host '{
"Name":"AtlasPeering/($azureSubscriptionId)/$resourceGroupName/$vnetName","IsCustom":true,"Description":"manage peering connections on network ","Actions":[
"Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read","Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write","Microsoft.Network/virtualNetworks/virtualNetworkPeerings/delete","Microsoft.Network/virtualNetworks/peer/action"
]
}'
上面的模板应该打印如下
{
"Name":"AtlasPeering/123/245/456","Description":"manage peering connections on network","Microsoft.Network/virtualNetworks/peer/action"
]
}
解决方法
尝试将输出字符串设为 here-string:
Write-Host @"
{
"Name":"AtlasPeering/($azureSubscriptionId)/$resourceGroupName/$vnetName","IsCustom":true,"Description":"manage peering connections on network ","Actions":[
"Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read","Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write","Microsoft.Network/virtualNetworks/virtualNetworkPeerings/delete","Microsoft.Network/virtualNetworks/peer/action"
]
}
"@