如下说明是翻译
PowerShell
中
: help Get-Unique
产生的帮助信息
.
译者
: Edengundam(
马涛
)
Get-Unique
大纲
从排序的列表中返回唯一项
.
语法
Get-Unique [-inputObject <psobject>] [-asString] [<CommonParameters>]
Get-Unique [-inputObject <psobject>] [-onType] [<CommonParameters>]
详细描述
Get-Unique cmdlet
将排序过的列表中的项与下一项进行比较
,
消除重复的项
,
每一项只返回唯一的实例
. Cmdlet
要正常的工作
,
输入列表必须经过排序
.
参数
-inputObject <psobject>
为
Get-Unique
接受输入对象
.
输入一个包含对象的变量
,
或者一个能够产生对象的命令或表达式
.
Get-Unique
将通过
InputObject
输入的对象看做是一个集合
;
此命令不会对集合中的独立的项进行枚举
.
因为集合是一个单独的项
,
通过
InputObject
提交的输入
,
总是保持原样输出
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
true (
根据值
)
|
允许通配符扩展
?
|
false
|
-asString <SwitchParameter>
将数据看做字符串
.
不使用此参数时
,
数据被看做对象
,
当提供给
Get-Unique
的集合中对象类型相同时
(
例如
:
包含文件对象的集合
),
此命令只返回一个对象
(
第一个
).
通过使用此参数你可以在对象属性中查找唯一值
,
例如文件对象的文件名称
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-onType <SwitchParameter>
每一个类型只返回一个对象
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
<
公共参数
>
此命令支持公共参数
: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable.
更多信息
,
输入
, "get-help about_commonparameters".
输入类型
Any
返回类型
Any
注意
更多信息
,
输入
"Get-Help Get-Unique -detailed".
需要技术信息
,
输入
"Get-Help Get-Unique -full".
对列表进行排序
,
使用
Sort-Object
.
你也可以使用
Sort-Object
的
Unique
参数在列表中查找唯一项
.
如果需要为该命令提供多个参数
,
请使用逗号进行分隔
.
例如
, "<parameter-name> <value1>, <value2>".
你可以使用
Get-Unique
内建别名
"gu".
需要更多信息
,
查看
About_Alias
.
例
1
C:/PS>$a = $(foreach ($line in get-content C:/Test1/File1.txt) {$line.tolower().split(" ")}) | sort | get-unique
$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
的值当作对象
,
只会返回该对象的一个实例
,
在这里
,
就是第一个进程的名称
(
译注
:
字符串类型
).
相关链接
Select-Object
Sort-Object