8.3 Discovering objects: Get-Member
如果一个对象很大导致PowerShell不能全部显示出来,我们用 Help
是不行的,因为 Help
命令只支持概念和命令语法。得用 Get-Member
命令(别名 Gm
)。当然,我们也可以在任何有输出的cmdlet后面使用 Gm
,如: Get-Process | Gm
8.6 Sorting objects
cmdlet Sort-Object
(别名Sort)可以用来排序,如: Get-Process | Sort-Object -property VM
。指定该cmdlet的 -descending
(简写desc)可以改变顺序,其中的 -property
参数是positional的,所以我们可以这样写 Get-Process | Sort VM -desc
8.7 Selecting the properties you want
cmdlet Select-Object
(别名Select)可以决定我们想要输出的属性,该cmdlet接受从pipeline传入的对象。如 Get-Process | Select-Object -property Name,ID,VM,PM | Convert-ToHTML | Out-File test2.html
。其中的 -property
参数是positional的,因此也可以简写成 Get-Process | Select Name,ID,VM,PM | ConvertTo-HTML | Out-File test3.html
Select-Object
还有 -First
和 -Last
参数,让我们得到一系列子对象。如 Get-Process | Select -First 10
得到前10个对象。如果不做出说明,默认得到前(后)10个对象。
8.8 Objects until the end
我们可以使用 Gm
(Get-Member)来查看pipeline中的对象,Gm
可以被加在任何产生输出的cmdlet的后面,如:
Get-Process | Sort VM -descending | gm
Get-Process | Sort VM -descending | Select Name,ID,VM | gm
甚至 Gm
也会生成对象并将它们放入pipeline中。在运行完 Gm
之后,pipeline不再包含任何进程或者被选中的对象,而是包含一种由 Gm
生成的对象,该对象称为 Microsoft.PowerShell.Commands.MemberDefinition
,我们可以使用 将 Gm
的输出pipe到其本身来查看,如Get-Process | Gm | Gm
。
8.9 Common points of confusion
我们需要将对象pipe到 Gm
中来查看对象属性。