从Powershell中的对象数组中删除项目

San*_*eep 4 powershell powershell-2.0

我有一个数组对象$ a,它返回如下所示的输出.

假设$ a返回此值

通过执行$ a [0] .Name,我可以访问每个"Name"条目,$ a [0].可以访问其相应的可用空间.

我有另一个数组说$ b包含一些名字,比如说$ b给我两个名字"sandeep_aggr1"和"aggr4".这只是一个数组(没有像Name,Avaiable这样的属性),而不是一个对象,所以它不能使用Compare-Object.

我想删除原始对象$ a中的其他条目,但"Name"等于"sandeep_aggr1"和"aggr4"的条目除外.

这就是我在做的事情.

foreach($bb in $b)
    {
          foreach($aa in $a)
          {
                if($aa.Name -ne $bb)
                {
                   $aa.Remove($aa.Name)
                }

          }


    }

    echo $a
Run Code Online (Sandbox Code Playgroud)

但是,我没有看到删除的元素,我在这里遗漏了什么?任何帮助赞赏

mjo*_*nor 9

如果我正确地阅读了这个问题,这应该有效:

$a = $a | where {$b -contains $_.Name}
Run Code Online (Sandbox Code Playgroud)