在powershell中解析模板

问题描述

我想根据我在 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"
 ]
}
"@