如何在PowerShell中将VM备注中JSON的Program值存入变量?
提取VM备注中JSON的Program值
我来帮你搞定这个问题,其实步骤很简单,咱们一步步来:
获取VM的纯备注内容
你之前用的Format-List是用来格式化输出给人看的,不适合后续数据处理。咱们直接提取Notes的字符串值:$vmNotes = (Get-VM testbox).Notes这时候
$vmNotes里就存了干净的JSON字符串:{ "Program": "AAA", "Project": "BBBB" }把JSON字符串转成PowerShell可操作的对象
PowerShell内置了专门解析JSON的命令ConvertFrom-Json,用它把字符串转成对象:$noteObject = $vmNotes | ConvertFrom-Json提取Program的值到变量
现在直接访问对象的Program属性就行:$programValue = $noteObject.Program你可以用
Write-Host $programValue验证一下,输出应该就是AAA
一步到位的简化写法
要是不想分步骤,也可以把命令合并成一行,更简洁:
$programValue = ((Get-VM testbox).Notes | ConvertFrom-Json).Program
小提醒
要确保VM备注里的JSON是标准格式——比如必须用双引号包裹键和值,ConvertFrom-Json对单引号的JSON不兼容;如果备注里有多余的空格或换行也没关系,命令会自动处理。
内容的提问来源于stack exchange,提问作者Vinay
相关产品推荐
相关产品推荐

