您的位置:首页 > 移动开发 > Objective-C

Group-Object 帮助信息

2007-11-03 09:36 323 查看
[align=left]如下说明是翻译PowerShell中: help Group-Object 产生的帮助信息. [/align]
译者: Edengundam(马涛)

Group-Object

[align=left]大纲[/align]
[align=left]根据指定的属性, 将包含相同属性值的对象进行分组.[/align]
[align=left] [/align]
[align=left]语法[/align]
[align=left]Group-Object [[-property] <Object[]>] [-caseSensitive] [-noElement] [-culture <string>] [-inputObject <psobject>] [<CommonParameters>][/align]
[align=left] [/align]
[align=left]详细描述[/align]
[align=left]根据指定的属性, 将包含相同属性值的对象进行分组. 默认情况下, 命令将会根据参数Property指定的属性, 将具有相同值的对象分成一组, 并为每一组对象创建GroupInfo对象. GroupInfo包含group属性, 此属性是所有属于此分组的对象的集合. 分组成员数存放在对应的GroupInfo对象上的Count属性中, 分组的名称是根据这些对象的公共值命名的. [/align]
[align=left] [/align]
[align=left]要忽略结果中的输入对象, 通过指定参数NoElement. 此时结果将是一组GroupInfoNoElement对象, 每个对象的属性Group为空. 默认情况下, 简历分组时的比较操作是忽略大小写的. 你可以通过指定参数CaseSensitive来改变此行为.[/align]
[align=left] [/align]
[align=left]参数[/align]
[align=left] [/align]
[align=left]-property <Object[]>[/align]
[align=left]指定对输入对象进行分组的属性或属性列表(译注: 既多个属性, 类似数据库中Group By子句).[/align]
[align=left] [/align]
[align=left]强制参数?[/align]
[align=left]false[/align]
[align=left]参数位置?[/align]
[align=left]1[/align]
[align=left]默认值[/align]
[align=left] [/align]
[align=left]允许从管道绑定输入?[/align]
[align=left]false[/align]
[align=left]允许通配符扩展?[/align]
[align=left]false[/align]
[align=left] [/align]
[align=left]-caseSensitive <SwitchParameter>[/align]
[align=left]指定在分组过程中, 在进行属性值比较时需要区分大小写.[/align]
[align=left] [/align]
[align=left]强制参数?[/align]
[align=left]false[/align]
[align=left]参数位置?[/align]
[align=left]named[/align]
[align=left]默认值[/align]
[align=left]False[/align]
[align=left]允许从管道绑定输入?[/align]
[align=left]false[/align]
[align=left]允许通配符扩展?[/align]
[align=left]false[/align]
[align=left] [/align]
[align=left]-noElement <SwitchParameter>[/align]
[align=left]确定输出的分组对象是否包含输入的对象.[/align]
[align=left] [/align]
[align=left]强制参数?[/align]
[align=left]false[/align]
[align=left]参数位置?[/align]
[align=left]named[/align]
[align=left]默认值[/align]
[align=left] [/align]
[align=left]允许从管道绑定输入?[/align]
[align=left]false[/align]
[align=left]允许通配符扩展?[/align]
[align=left]false[/align]
[align=left] [/align]
[align=left]-culture <string>[/align]
[align=left]指定在执行字符串比较时使用的区域设置.[/align]
[align=left] [/align]
[align=left]强制参数?[/align]
[align=left]false[/align]
[align=left]参数位置?[/align]
[align=left]named[/align]
[align=left]默认值[/align]
[align=left]Current Culture[/align]
[align=left]允许从管道绑定输入?[/align]
[align=left]false[/align]
[align=left]允许通配符扩展?[/align]
[align=left]false[/align]
[align=left] [/align]
[align=left]-inputObject <psobject>[/align]
[align=left]制定进行分组的对象. 输入一个包含对象的变量, 或者一个能够产生对象的命令或表达式.[/align]
[align=left] [/align]
[align=left]强制参数?[/align]
[align=left]false[/align]
[align=left]参数位置?[/align]
[align=left]named[/align]
[align=left]默认值[/align]
[align=left] [/align]
[align=left]允许从管道绑定输入?[/align]
[align=left]true (根据值)[/align]
[align=left]允许通配符扩展?[/align]
[align=left]false[/align]
[align=left] [/align]
[align=left]<公共参数>[/align]
[align=left]此命令支持公共参数: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable. 更多信息, 输入, "get-help about_commonparameters".[/align]
[align=left] [/align]
[align=left]输入类型[/align]
[align=left]Object stream[/align]
[align=left] [/align]
[align=left]返回类型[/align]
[align=left]Objects[/align]
[align=left] [/align]
[align=left]注意[/align]
[align=left] [/align]
[align=left]Group-Object不要求分组的对象必须是一个类型. 当对不同类型对象进行分组时, 此命令使用下述规则进行.[/align]
[align=left] [/align]
[align=left]属性名称和类型相同: 如果所有的对象都具有指定的属性, 并且这些属性具有相同的类型, 则使用与处理相同类型的对象一样的规则进行分组.[/align]
[align=left] [/align]
[align=left]属性名相同, 类型不相同: 如果不同的对象包含了指定的属性名称, 但是这些这些属性的类型不完全相同, 那么在一组中第一个被处理的对象的类型作为此属性的基本类型. 当遇到一个不同类型的对象时, 则该值被转换成每组的基本类型. 如果类型转换失败, 则该对象不匹配该组. [/align]
[align=left] [/align]
[align=left]缺少属性: 不包含指定属性的对象被认为是不可能分组. 不可分组的对象也出现在最后的GroupInfo对象中, 此分组名为AutomationNull.Value.[/align]
[align=left] [/align]
[align=left]1 [/align]
[align=left] [/align]
[align=left]C:/PS>get-childitem *.doc | group-object -property length[/align]
[align=left] [/align]
[align=left]此命令将会显示当前位置下扩展名为.doc的文件列表, 并按照文件长度进行分组.[/align]
[align=left] [/align]
[align=left]2 [/align]
[align=left] [/align]
[align=left]C:/PS>get-childitem | sort-object -property extension | group-object -property extension[/align]
[align=left] [/align]
[align=left]此命令将会显示当前位置下的文件, 按照文件扩展名进行排序并分组. 注意排序操作在分组操作之前执行.[/align]
[align=left] [/align]
[align=left]3 [/align]
[align=left] [/align]
[align=left]C:/PS>1..35 | group-object -property {$_ % 2},{$_ % 3}[/align]
[align=left] [/align]
[align=left]此命令显示从1到35的整数, 并且按照他们除以2和3的余数进行分组. 它揭示了cmdlet能够允许多个脚本块作为输入.[/align]
[align=left] [/align]
[align=left]4 [/align]
[align=left] [/align]
[align=left]C:/PS>$events = get-eventlog -logname system -newest 1000[/align]
[align=left]$events | group-object -property eventID[/align]
[align=left] [/align]
[align=left]此命令按照事件ID进行分组, 显示最近的1000项系统事件日志. 它使用Get-EventLog cmdlet获取事件, 并将它们存储在变量$events中. 第二行中, 它将存储的事件通过管道发送给Group-Object cmdlet, 通过参数Property来指定这些事件应该根据他们的eventID属性进行分组. 输出中, 列Count表示了每组中的项数, 列Name表示定义每个分组的EventID值 , 列Group表示了每组所包含的输入对象的数组.[/align]
[align=left] [/align]
[align=left]Count Name Group[/align]
[align=left]----- ---- -----[/align]
[align=left]247 7036 {FABRIKAM, FABRIKAM, FABRIKAM,..[/align]
[align=left]361 30 {FABRIKAM, FABRIKAM, FABRIKAM,..[/align]
[align=left] [/align]
[align=left]5 [/align]
[align=left] [/align]
[align=left]C:/PS>get-process | group-object -property company -noelement[/align]
[align=left] [/align]
[align=left]此命令显示计算机上的所有进程列表, 并根据进程关联的应用程序开发公司名称进行分组. 因为制定了参数NoElement, 此命令返回的对象不包括被分组的进程对象.[/align]
[align=left] [/align]
[align=left]6 [/align]
[align=left] [/align]
[align=left]C:/PS>get-eventlog -logname system -newest 1000 |[/align]
[align=left]group-object -property {$_.TimeWritten - $_.TimeGenerated}[/align]
[align=left] [/align]
[align=left]此命令显示最近的1000项系统事件日志, 并根据该日志事件被记录的时间和事件发生时间之间时间差分组. 命令使用了Get-EventLog cmdlet取得日志项, 并通过管道将它们发送给Group-Object cmdlet. 参数Property的值, 是通过一个脚本块指定的(使用花括号括起来的表达式). 脚本块求值的结果是该日志事件被记录的时间和事件发生时间之间时间差. 该值被用来对最近的1000项日志进行分组. 此命令揭示了你能够为参数Property的值提供一个脚本块.[/align]
[align=left] [/align]
[align=left]7 [/align]
[align=left] [/align]
[align=left]C:/PS>get-childitem | group-object extension -noelement[/align]
[align=left] [/align]
[align=left]此命令确定当前目录下有哪些扩展名, 但是不在分组结果中包含任意的文件对象.[/align]
[align=left] [/align]
[align=left]8 [/align]
[align=left] [/align]
[align=left]C:/PS>$events = get-eventlog -logname application -newest 500 [/align]
[align=left]$groups = group-object -inputobject $events -property entrytype,source[/align]
[align=left]$groups | get-member[/align]
[align=left]$groups | select-object -expandproperty group[/align]
[align=left] [/align]
[align=left]此命令创建表示对应用程序事件日进行分组的GroupInfo对象. Get-EventLog cmdlet用来获取最近的500项应用程序事件日志, 并存储到变量$events中. 变量$events作为输入传递给Group-Object cmdlet, 并根据项的类型和事件源进行分组, 将作为结果的分组对象存储到变量$groups中. 变量$groups通过管道传递给Get-Member cmdlet来显示关于它的信息. 命令的最后一行, 变量$groups通过管道传送给Select-Object cmdlet. 参数ExpandProperty用来显示变量$groups中GroupInfo对象上group属性中的事件信息.[/align]
[align=left] [/align]
[align=left]相关链接[/align]
[align=left]Sort-Object[/align]
[align=left]Measure-Object[/align]
[align=left]New-Object[/align]
[align=left]Select-Object[/align]
[align=left]ForEach-Object[/align]
[align=left]Where-Object[/align]
[align=left]Compare-Object[/align]
[align=left]Tee-Object[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: