Powershell:删除arraylist中的重复条目

Powershell: delete duplicate entry in arraylist

在我的 Powershellscript 中,我从数组列表中的 csv 文件中读取了一些数据。

在第二步中,我删除了没有特定字符的每一行:(.

在第三步我想消除每一个双项。

我的列表示例:

Klein, Jürgen (Klein01); salesmanagement national 
Klein, Jürgen (Klein01); salesmanagement national 
Meyer, Gerlinde (Meyer02); accounting 
Testuser 
Admin1
Müller, Kai (Muell04); support international

我使用以下脚本:

$Arrayusername = New-Object System.Collections.ArrayList
$NewArraylistuser = New-Object System.Collections.ArrayList
$Arrayusername = Get-Content -Path "C:\Temp\User\Userlist.csv"
for ($i=0; $i -le $Arrayusername.length; $i++)
{
    if ($Arrayusername[$i] -like "*(*")
    {
        $NewArraylistuser.Add($Arrayusername_ads[$i])
    }
    $Array_sorted = $NewArraylistuser | sort
    $Array_sorted | Get-Unique
}

但是变量$Array_sorted仍然有两个条目。 我没有发现错误。

关于如何更改代码的一些想法:

  1. 使用现有命令导入带分隔符 ; 的 .csv 文件。
  2. 使用 Where-Object 过滤输出以仅包含具有 (.
  3. 的名称
  4. Select 仅具有 Select-Object 的唯一对象,或者如果要对对象进行排序,请使用具有相同参数的 Sort-Object

像这样的东西应该可以工作:

Import-csv -Delimiter ';' -Header "Name","Position" -Path "C:\Temp\User\Userlist.csv" | Where-Object {$_.Name -like "*(*"} | Sort-Object -Unique -Property Name,Position