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
仍然有两个条目。
我没有发现错误。
关于如何更改代码的一些想法:
- 使用现有命令导入带分隔符
;
的 .csv 文件。
- 使用
Where-Object
过滤输出以仅包含具有 (
. 的名称
- 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
在我的 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
仍然有两个条目。
我没有发现错误。
关于如何更改代码的一些想法:
- 使用现有命令导入带分隔符
;
的 .csv 文件。 - 使用
Where-Object
过滤输出以仅包含具有(
. 的名称
- 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