Powershell:删除arraylist中的重复条目

问题描述 投票:0回答:1

在我的Powershellscript中,我从Arraylist中的csv-File中读取了一些数据。

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

在第三步,我想消除每一个双重条目。

我的清单示例:

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仍然有两个条目。我没有发现错误。

powershell arraylist unique powershell-v2.0
1个回答
1
投票

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

  1. 使用现有命令使用Delimiter ;导入.csv文件。
  2. 使用Where-Object过滤输出,仅包含带有(的名称。
  3. 使用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
© www.soinside.com 2019 - 2024. All rights reserved.