Powershell 哈希表添加/删除方法会影响所有变量。

0 methods powershell hashtable

这是我一直试图克服的一些奇怪的例子,最终结果是我想要一个带有组合哈希表的新变量,但不修改两个原始哈希表。

示例:我有两个哈希表。

    $User = @{
        "Name" = "Jane Doe"
        "Location" = "Work"
        }
    $Details = @{
        "hair" = "Brown"
        "Eyes" = "Blue"
        "Height" = "68"
        }
Run Code Online (Sandbox Code Playgroud)

我想将一个添加到另一个,并将结果复制到一个新变量。几个例子:

    $newHash = $User.add("Details",$Details)

    ($newHash = $User).add("Details",$Details)

    $newHash = $User
    $newHash.add("Details",$Details)
Run Code Online (Sandbox Code Playgroud)

最后两个致力于添加详细信息,但他们将其添加到 $newHash 和 $User!如果您运行第三个示例,然后删除详细信息:

   $User.Remove("Details")
Run Code Online (Sandbox Code Playgroud)

它将它从 $User 和 $newHash 中删除!我似乎无法找到解决这种行为的方法,非常感谢建议!

mjo*_*nor 5

尝试这个:

$User = @{
          "Name" = "Jane Doe"
          "Location" = "Work"
    }
$Details = @{
             "hair" = "Brown"
             "Eyes" = "Blue"
             "Height" = "68"
            }

$newHash = $User.clone()
$newHash.Add('Details',$details)
Run Code Online (Sandbox Code Playgroud)