You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在PowerShell中使用Azure CLI:如何将列表查询结果作为内联参数传递?

解决PowerShell中Azure CLI部署参数的JSON数组格式问题

在PowerShell环境下,要将密钥保管库的密钥名称数组传入az deployment group create,需要把默认的双引号JSON数组转换成单引号包裹元素的格式,以下是两种实用方案:

方案一:直接字符串替换

先获取密钥名称的JSON数组,再替换双引号为单引号:

# 获取密钥名称的JSON数组
$keyNamesJson = az keyvault key list --vault-name "你的密钥保管库名称" --query "[].name" -o json

# 替换双引号为单引号,得到符合要求的格式
$formattedKeyNames = $keyNamesJson.Replace('"', "'")

# 传入部署命令
az deployment group create `
    --resource-group "你的资源组名称" `
    --template-file "你的模板文件路径.json" `
    --parameters keyNames=$formattedKeyNames

方案二:转成PowerShell数组后重新拼接

如果需要更灵活的处理(比如应对特殊字符),可以先把JSON转成PowerShell数组,再拼接成目标格式:

# 获取并转换为PowerShell数组
$keyArray = az keyvault key list --vault-name "你的密钥保管库名称" --query "[].name" -o json | ConvertFrom-Json

# 拼接成'value1','value2'的格式,再包裹数组括号
$formattedKeyNames = "['$($keyArray -join "','")']"

# 传入部署命令
az deployment group create `
    --resource-group "你的资源组名称" `
    --template-file "你的模板文件路径.json" `
    --parameters keyNames=$formattedKeyNames

特殊字符处理(可选)

如果密钥名称包含单引号,需要先转义(替换为两个单引号):

$keyArray = az keyvault key list --vault-name "你的密钥保管库名称" --query "[].name" -o json | ConvertFrom-Json
$escapedKeys = $keyArray | ForEach-Object { $_.Replace("'", "''") }
$formattedKeyNames = "['$($escapedKeys -join "','")']"

内容的提问来源于stack exchange,提问作者iqoOopi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:55:21