如何用PowerShell筛选出packageDescription为ABC的包名
解决PowerShell筛选特定描述包名的问题
需求
打印所有包含子项packageDescription为'ABC'的包的name字段,最终仅输出符合条件的包名列表。
现有问题
已将JSON数据转换为PowerShell对象,但当前代码仅添加了计算属性,未过滤不符合条件的包,导致输出包含所有包的信息,未实现预期的过滤效果。
修正后的PowerShell代码
$PackageInfo = ConvertFrom-Json -inputObject $myJson $description = "ABC" # 先过滤出包含指定描述版本的包,再提取包名字段 $PackageInfo.value | Where-Object { $_.versions.packageDescription -contains $description } | Select-Object -ExpandProperty name
代码说明
- 过滤逻辑:用
Where-Object检查每个包的versions数组中是否存在packageDescription等于$description的项,-contains操作符可直接判断数组是否包含目标值。 - 提取包名:通过
Select-Object -ExpandProperty name直接输出包名字符串,而非带属性名的对象,得到纯包名列表。
正确输出
pack-de pack-en
内容的提问来源于stack exchange,提问作者Gunilla
相关产品推荐
相关产品推荐

