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

如何进一步研究Azure CLI输出在PowerShell中存储异常的问题?

问题解决与排查指南

直接解决方法

方法1:用TSV输出直接提取纯ID

Azure CLI的--output tsv会输出无格式的纯值,自动去掉JSON的括号、引号和缩进,存入PowerShell变量后直接得到目标值(多结果时为数组):

$AppId = az ad sp list --display-name Shazoo --query "[].appId" --output tsv

方法2:解析JSON输出为PowerShell对象

如果需要保留JSON结构的解析,将Azure CLI的输出通过ConvertFrom-Json转成PowerShell数组:

$AppId = (az ad sp list --display-name Shazoo --query "[].appId" | ConvertFrom-Json)

此时$AppId是字符串数组,单个结果时$AppId[0]直接返回纯GUID。

排查问题的步骤

  • 确认Azure CLI输出格式:直接执行命令az ad sp list --display-name Shazoo --query "[].appId",观察输出是否为带换行、缩进的美化版JSON。Azure CLI默认会美化JSON,导致PowerShell捕获到多行字符串数组。
  • 检查变量类型与内容:
    1. 执行$AppId.GetType().FullName查看变量类型,若为System.Object[]说明是多行数组;
    2. 执行$AppId | ForEach-Object { Write-Host "行内容: '$_'" },逐个查看捕获到的每一行具体内容,确认是否是JSON的拆分行。
  • 测试无格式JSON输出:执行az ad sp list --display-name Shazoo --query "[].appId" --output json --no-pretty-print,输出会变成紧凑的单行长JSON,再用ConvertFrom-Json解析更不易出错。
  • 对比不同输出类型:分别测试--output table、--output json、--output tsv的输出,观察PowerShell捕获后的变量差异,TSV格式最适合直接提取纯值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:43:16