powershell 如何将值作为参数从csv传递到az cli部署

kuarbcqp  于 2023-03-18  发布在  Shell
关注(0)|答案(1)|浏览(164)

我对PowerShell没有太多的经验,这个简单的问题已经把我逼上了绝路。我希望有人能给我指出正确的方向。

  • 我有一个包含IP范围值的CSV文件
  • 我希望将这些IP值作为参数传递给Bicep模板
  • 参数的类型为数组,请参见下面的代码段

CSV文件:

IP,Comment
10.0.0.1, Comment blabla
10.0.0.52, Comment more blabla

我希望使用以下参数将IP值传递到Azure Bicep模板中:

param ipArray array

cli命令如下所示:

az deployment group validate -g test-rg -f .\main.bicep -p ipArray=$ipRange

我无法正确填充$ipRange。我已经测试了以下内容,知道它可以工作:

az deployment group validate -g test-rg -f .\main.bicep -p ipArray="['10.0.0.1','10.0.0.52']"

因此,我需要弄清楚如何根据上述语法构建Powershell变量
$ipRange = ((Get-Content .\ip_list.csv) | ConvertFrom-Csv).IP

Failed to parse string as JSON:
10.0.0.1 10.0.0.52
Error detail: Extra data: line 1 column 6 (char 5)

任何正确方向的推动都将不胜感激
谢谢!

oxf4rvwz

oxf4rvwz1#

此代码将转换您要求的IP范围:

$ipRange = ((Get-Content C:\Temp\ip.csv) | ConvertFrom-Csv).IP | ConvertTo-Json
$ipRange = $ipRange.ToString() -replace '"',"'"
$ipRange

相关问题