清除占位符也会清除变量值

时间:2018-08-29 16:09:26

标签: powershell

问题

在将(占位符)哈希表分配给另一个变量,然后重置该哈希表时,它还会重置分配给该变量的值。

问题

  1. 为什么会这样?
  2. 如何防止这种情况?
  3. 为什么对于该特定示例它似乎只能以这种方式工作,而如果$a是一个简单的整数,则为什么不行呢?

MWE

$a = @{test=$true}
$b = $a
$b
$a.Clear()
$b

输出

Name                           Value
----                           -----
test                           True

第二个调用不输出任何内容,因为$b现在被认为是空的。

1 个答案:

答案 0 :(得分:2)

我相信您需要执行以下操作:

$b = $a.Clone()

否则,就哈希而言,您同时使用$ a和$ b引用相同的东西。