PowerShell 问:为什么这个 foreach-object 会改变两个变量的值?我只想改变一个($b)

PowerShell 问:为什么这个 foreach-object 会改变两个变量的值?我只想改变一个($b)

正如您在该图像或代码中看到的,foreach-object cmdlet 更改了两个变量的值,但我只想更改第二个变量 $b 的值。

图片:

这是终端本身的摘录:

PS C:\> $a    
PS C:\> $b    
PS C:\> $a = @{ Name = "Jhon" }    
PS C:\> $a

Name                           Value
----                           -----
Name                           Jhon


PS C:\> $b = $a    
PS C:\> $b

Name                           Value
----                           -----
Name                           Jhon

PS C:\> $b | ForEach-Object { $_.Name = "Richard" }    
PS C:\> $b

Name                           Value
----                           -----
Name                           Richard


PS C:\> $a

Name                           Value
----                           -----
Name                           Richard


PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.16299.492

“$b = $a”中间有什么东西吗?

提前致谢。

相关内容