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

PowerShell中如何静态初始化哈希表嵌套结构?

PowerShell嵌套哈希表静态初始化错误修复

错误代码

$table = @{"a" = @{"x" = 1, "y" = 2, "z" = 3}, "b" = @{"x" = 3, "y" = 4, "z" = 6}}

错误信息

PS C:\Users\nkannapp> $table = @{"a"=@{"x" = 1, "y" = 2, "z" = 3}, "b"=@{"x" = 3, "y" = 4, "z" = 6}}
At line:1 char:16

  • $table = @{"a"=@{"x" = 1, "y" = 2, "z" = 3}, "b"=@{"x" = 3, "y" = 4, ...
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    

The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept
assignments, such as a variable or a property.
At line:1 char:46

  • $table = @{"a"=@{"x" = 1, "y" = 2, "z" = 3}, "b"=@{"x" = 3, "y" = 4, ...
  • ~~~
    

The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept
assignments, such as a variable or a property.

修复后的正确代码

紧凑写法

$table = @{"a" = @{"x" = 1; "y" = 2; "z" = 3}; "b" = @{"x" = 3; "y" = 4; "z" = 6}}

换行格式化(可读性更强)

$table = @{
    "a" = @{
        "x" = 1
        "y" = 2
        "z" = 3
    }
    "b" = @{
        "x" = 3
        "y" = 4
        "z" = 6
    }
}

错误原因

PowerShell初始化哈希表时,键值对之间必须用分号(;)分隔,逗号(,)是PowerShell的数组创建运算符。原代码中的逗号会被解析为将多个对象打包成数组,破坏了哈希表的结构定义,最终触发赋值表达式无效的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 07:18:10