如何用PowerShell原生短命令替代JQ提取JSON指定值?
PowerShell 提取指定JSON值的短命令方案
假设你的JSON数据结构类似(比如目标值对应键为installer):
{"installer": "7.3.9-win-x64.msi", "otherKey": "xxx"}
这里提供两种用PowerShell内置工具的短命令实现:
1. 可靠的结构化解析(适合复杂JSON)
用ConvertFrom-Json配合别名简化命令,直接提取目标属性:
- 从文件读取JSON:
gc .\your-file.json | ConvertFrom-Json | % installer - 直接传入JSON字符串:
'{"installer": "7.3.9-win-x64.msi"}' | ConvertFrom-Json | % installer
(gc是Get-Content的别名,%是ForEach-Object的别名,% installer等价于直接提取对象的installer属性值)
2. 快速正则匹配(适合简单JSON结构)
如果JSON结构简单、格式固定,用Select-String(别名sls)配合正则直接抓取值,命令更短:
- 从文件读取:
gc .\your-file.json | sls '"installer":\s*"([^"]+)"' | % { $_.Matches.Groups[1].Value } - 直接传入字符串:
'{"installer": "7.3.9-win-x64.msi"}' | sls '"installer":\s*"([^"]+)"' | % { $_.Matches.Groups[1].Value }
注意:如果目标值对应的键不是installer,只需替换命令里的键名即可。
内容的提问来源于stack exchange,提问作者July Elizabeth
相关产品推荐
相关产品推荐

