如下说明是翻译
: help Select-Object
产生的帮助信息
.
译者
: Edengundam(
马涛
)
Select-Object
大纲
从一个或多个对象上选取指定的属性
.
它也可以用于去除数组中重复的元素
,
或者从数组开头或结尾选取制定数量的对象
.
语法
Select-Object [[-property] <Object[]>] [-excludeProperty <string[]>] [-expandProperty <string>] [-first <int>] [-last <int>] [-unique] [-inputObject <psobject>] [<CommonParameters>]
详细描述
从一个或多个对象上选取指定的属性
.
它也可以用于去除数组中重复的元素
,
或者从数组开头或结尾选取制定数量的对象
.
如果你使用
Select-Object
筛选指定的属性
,
它将会创建一个新的对象
,
并将输入对象的属性及其值拷贝到新对象上
.
你可以使用参数
First, Last
和
Unique
从输入对象的数组中选取特定的对象
.
需要更强大的过滤对象功能
,
请使用
Where-Object cmdlet.
你可以使用
Select-Object
将属性的累积值添加到对象上
.
你需要为参数
Property
指定一个哈希表来完成这个功能
.
此哈希表必须包含两个键
: Name
和
Expression.
将结果属性名称存储于键
Name
中
.
将对属性值进行计算的脚本块存储于键
Expression
中
.
参数
-property <Object[]>
指定选择操作的属性
.
你可以在此参数中使用通配符
.
强制参数
?
|
false
|
参数位置
?
|
1
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
true
|
-excludeProperty <string[]>
制定被忽略的属性名称
.
被忽略的属性名称将会从已经被选择到属性列表中移除
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
null
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
true
|
-expandProperty <string>
指定一个筛选的属性
,
并尝试对该属性信息进行展开
(
显示更多有用信息
).
如果制定了一个数组的属性
,
数组的每个值都会被展开
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
null
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
true
|
-first <int>
指定从输入对象数组的开头筛选的对象数量
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
0
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-last <int>
指定从输入对象数组的末尾筛选的对象数量
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
0
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-unique <SwitchParameter>
当指定此参数时
,
具有相同属性和值
(
这些属性被用来进行筛选
)
的对象将被划分到一个子集中
,
最终只会将子集中的一个成员输出
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
False
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-inputObject <psobject>
指定输入给此命令的对象
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
true (
根据值
)
|
允许通配符扩展
?
|
false
|
<
公共参数
>
此命令支持公共参数
: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable.
更多信息
,
输入
, "get-help about_commonparameters".
输入类型
Object[]
返回类型
PSObjects
注意
更多信息
,
输入
"Get-Help Select-Object -detailed".
需要技术信息
,
输入
"Get-Help Select-Object -full".
如果需要为该命令提供多个参数
,
请使用逗号进行分隔
.
例如
, "<parameter-name> <value1>, <value2>".
你可以使用
Select-Object
内建别名
"select".
需要更多信息
,
查看
About_Alias.
例
1
C:/PS>get-process | select-object ProcessName,Id,WS
此命令将显示进程的列表
.
只有进程的名称
, ID,
工作集
(WS)
属性被输出
.
例
2
C:/PS>get-process | select-object processname -expandproperty modules |
format-list
此命令显示计算机上运行进程使用模块的信息
.
它使用参数
ExpandProperty
显示
modules
属性中的详细信息
.
ProcessName : 00THotkey
Size : 256
Company : TOSHIBA Corporation
FileVersion : 1, 0, 0, 27
ProductVersion: 6, 2, 0, 0
Description : THotkey
Product : TOSHIBA THotkey
ModuleName: 00THotkey.exe
FileName : C:/WINDOWS/system32/00THotkey.exe
BaseAddress : 4194304
例
3
C:/PS>get-process | sort-object -property WS | select-object -Last 5
此命令将会显示占用内存最多的
5
个进程
. Sort-Object cmdlet
用来根据进程占用的内存
(Working Set)
进行排序
, Select-Object cmdlet
将选择数组中最后
5
个对象
.
Handles NPM(K)PM(K) WS(K) VS(M) CPU(s) Id ProcessName
------- ----------- ----- ----- ------ -- -----------
2866 32033432 45764 203 222.41 1292 svchost
577 1723676 50516 265 50.58 4388 WINWORD
826 1175448 76712 188 19.77 3780 Ps
1367 1473152 88736 216 61.6 9676 Ps
1612 4466080 92780 380 900.59 6132 INFOPATH
例
4
C:/PS>$processes = get-process | select-object ProcessName,@{Name="Start Day";Expression = {$_.StartTime.DayOfWeek}}
此命令显示进程的名称和启动的时间
. Processname
就是命令
Get-Process cmdlet
输出的对象的属性
,
属性
start day
是一个通过计算取得结果
.
Name StartDay
---- --------
alg Wednesday
ati2evxx Wednesday
ati2evxx Thursday
...
例
5
C:/PS>"a","b","c","a","a","a" | select-object -unique
此命令将显示字符数组中去重后的结果
.
a
b
c
相关链接
Where-Object
Group-Object
Sort-Object