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