从排序列表返回唯一项目。

语法

Get-Unique [-AsString] [-InputObject <psobject>] [<CommonParameters>]

Get-Unique [-OnType] [-InputObject <psobject>] [<CommonParameters>]

说明

Get-Unique cmdlet 将排序列表中的每个项目与下一个项目进行比较,消除重复,并且只返回每个项目的一个实例。该列表必须经过排序,然后 cmdlet 才能正确工作。

参数

-AsString

将数据视为字符串。如果没有此参数,则数据被视为对象,因此,将相同类型的对象集合(例如,文件集合)提交到 Get-Unique 时,它只返回一个(第一个)对象。可以使用此参数查找对象属性的唯一值,例如,文件名。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-InputObject <psobject>

接受 Get-Unique 的输入。请输入包含对象的变量,或者键入可获取对象的命令或表达式。

Get-Unique 将通过使用 InputObject 所提交的输入视为集合;它不枚举集合中的各个项目。因为集合是单个项目,因此通过使用 InputObject 所提交的输入将始终在不作更改的情况下返回。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByValue)

是否接受通配符?

false

-OnType

对于每个类型只返回一个对象。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

System.Management.Automation.PSObject

可将任何类型的对象通过管道传递给 Get-Unique。

输出

System.Management.Automation.PSObject

Get-Unique 返回的对象的类型由输入确定。

说明

还可以使用 Get-Unique 的内置别名“gu”来对其进行引用。有关详细信息,请参阅 about_Aliases。

若要对列表排序,请使用 Sort-Object。还可以使用 Sort-Object 的 Unique 参数来查找列表中的唯一项。

示例 1

C:\PS>$a = $(foreach ($line in get-content C:\Test1\File1.txt) {$line.tolower().split(" ")}) | sort | get-unique

C:\PS> $a.count

说明
-----------
这些命令将查找文本文件中的唯一单词数。

第一个命令获取 File.txt 文件的内容。它将文本的每一行转换为小写字母,然后以空格 (" ") 为界将每个单词拆分到单独一行上。然后,它对得到的列表按字母顺序(默认)排序,并使用 Get-Unique cmdlet 消除任何重复的单词。结果存储在 $a 变量中。

第二个命令使用 $a 中的字符串集合的 Count 属性来确定在 $a 中有多少项。






示例 2

C:\PS>1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | sort-object | Get-Unique

说明
-----------
此命令查找该组整数的唯一成员。第一个命令接受在命令行键入的整数数组,通过管道将它们传递给 Sort-Object cmdlet 进行排序,然后通过管道将它们传递给 Get-Unique 以消除重复项。






示例 3

C:\PS>get-childitem | sort-object {$_.GetType()} |  unique -OnType

说明
-----------
此命令使用 Get-ChildItem cmdlet 来检索包含文件和目录的本地目录的内容。管道运算符 (|) 将结果发送到 Sort-Object cmdlet。“$_.GetType()”语句将 GetType 方法应用于每个文件或目录。然后,Sort-Object 按类型对项目排序。另一个管道运算符将结果发送给 Get-Unique。OnType 参数指示 Get-Unique 对每个类型只返回一个对象。






示例 4

C:\PS>get-process | sort-object | select processname | get-unique -asstring

说明
-----------
此命令获取计算机上正在运行的进程的名称,名称已消除重复。

Get-Process 命令获取计算机上的所有进程。管道运算符 (|) 将结果传递给 Sort-Object,后者在默认情况下按 ProcessName 以字母顺序对进程排序。结果将通过管道传递给 Select-Object cmdlet,后者只选择每个对象的 ProcessName 属性的值。然后,将结果通过管道传递给 Get-Unique 以消除重复。

AsString 参数指示 Get-Unique 将 ProcessName 值视为字符串。如果没有此参数,Get-Unique 会将 ProcessName 值视为对象,只返回该对象的一个实例,即列表中的第一个进程名称。






另请参阅




目录