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

如何筛选含方括号列名的PowerShell对象?

解决PowerShell筛选嵌套特殊属性名的问题

要筛选$data中[Custom.Class]属性下Name值为'Car'的数据,你之前的写法错误在于混淆了嵌套属性与单一属性,或未正确处理属性名中的特殊字符。以下是两种可行的解决方案:

方案1:用单引号包裹特殊属性名

直接用单引号将包含方括号的属性名括起来,明确告诉PowerShell这是完整的属性名,再访问其Name子属性:

$data | Where-Object { $_.'[Custom.Class]'.Name -eq 'Car' }

方案2:用反引号转义方括号

通过反引号(`)转义属性名中的方括号,避免PowerShell将其解析为索引操作符:

$data | Where-Object { $_.[`[Custom.Class`]].Name -eq 'Car' }

为什么之前的写法无效?

  • 第一种尝试$_.``[Custom.Class].Name:反引号的转义方式错误,PowerShell无法正确识别[Custom.Class]`作为完整属性名,导致语法报错。
  • 第二种尝试$_."[Custom.Class].Name":将[Custom.Class].Name当成了一个单一属性名,但实际上你的数据中是[Custom.Class]属性下嵌套了Name子属性,因此匹配不到任何结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 11:37:05