Get-Unique和select-object -unique之间的区别

时间:2014-10-13 06:15:14

标签: powershell csv powershell-v4.0

使用PowerShell,我通过“import-csv”将csv-data从文件导入到对象$ csvList中。这个csv-data有一个名为Benutzer的列。在做这样的事情时:

$csvList | %{$_.Benutzer} | select-object -unique

没有什么特别的:正如预期的那样,返回Benutzer中的唯一条目,大约有10个项目。但是,

$csvList | %{$_.Benutzer} | get-unique -asstring

$csvList | Group($_.Benutzer)

似乎将每个条目视为unqiue,即在get-unique的情况下返回260 Benutzer的整个数组,并且在group语句的情况下创建260个组。 我使用的是PowerShell 4.0。

任何想法在这里发生了什么... ...

1 个答案:

答案 0 :(得分:11)

来自Get-Unique帮助:

  

Get-Unique cmdlet会比较排序列表中的每个项目 ...

Select-Object -Unique不要求对象进行预先排序。

示例:

PS> 9,8,9,8 | Get-Unique -AsString
9
8
9
8

示例:

PS> 9,8,9,8 | Sort-Object -Unique
8
9

对于Group-Object,命令的语法应该不同,将($_.Benutzer)替换为属性名称Benutzer

$csvList | Group-Object Benutzer