我有这个脚本,我希望在每个foreach中为一个名为$Target
的数组添加一个对象。
foreach ($Machine in $Machines)
{
$TargetProperties = @{Name=$Machine}
$TargetObject = New-Object PSObject –Property $TargetProperties
$Target= @()
$Target = $TargetObject
}
我知道它不起作用,因为$Target = $TargetObject
使它等同于同一个对象。
如何附加到数组而不是替换?
答案 0 :(得分:68)
要附加到数组,只需使用+=
运算符。
$Target += $TargetObject
此外,您需要在循环之前声明$Target = @()
,否则,它将在每个循环中清空数组。
答案 1 :(得分:0)
通常情况下,人们这样做时不会使用低效的“+=”,每次都会创建一个新的数组副本:
$Target = foreach ($Machine in $Machines)
{
$TargetProperties = @{Name=$Machine}
$TargetObject = New-Object PSObject –Property $TargetProperties
}