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

PowerShell中为何无法通过点引用访问哈希表整数键对应值的属性

这不是PowerShell解析器的Bug,是PowerShell属性访问语法的固有设计规则导致的现象,底层原因如下:

  • PowerShell的.属性引用操作符,默认要求后续跟随的属性名符合合法标识符命名规范:必须以字母、下划线开头,后续可跟随字母、数字、下划线。如果属性/键名是纯数字,链式调用时解析器会把第二个.识别为浮点数的小数点,尝试将6.Count解析为数字,自然就抛出「缺少引用运算符后的属性名」的语法错误。
  • 单独执行$table.6能正常返回值,是PowerShell为非标准键名的哈希表访问做的特殊容错处理:解析器识别到.后只有纯数字的场景时,会自动将数字当做哈希表键名处理,但这套容错逻辑不会延伸到后续的链式调用场景。
  • 哈希表转成PSCustomObject后出现同样问题,是因为PSCustomObject的属性访问复用了同一套解析规则,纯数字命名的属性本身不符合标识符规范,链式访问自然会触发同样的解析错误。

其他合法的访问写法

除了你已经提到的( $table.6 ).Count、$table[6].Count外,还可以直接给数字键名加引号包裹,也能正常执行:

$table.'6'.Count # 正常返回结果 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 18:27:01