查看对象结构
由于对象在 PowerShell 中扮演了如此重要的角色,因此存在几个用于处理任意对象类型的本机命令。 最重要的一个是 Get-Member
命令。
分析命令返回的对象的最简单方法是通过管道将该命令的输出传递到 Get-Member
cmdlet。 Get-Member
cmdlet 向你显示对象类型的正式名称及其成员的完整列表。 有时返回的元素数目可能非常巨大。 例如,一个进程对象可以拥有 100 多个成员。
使用以下命令,可以通过输出查看 Process 对象和页面的所有成员。
Get-Process | Get-Member | Out-Host -Paging
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
Name AliasProperty Name = ProcessName
NPM AliasProperty NPM = NonpagedSystemMemorySize
PM AliasProperty PM = PagedMemorySize
VM AliasProperty VM = VirtualMemorySize
WS AliasProperty WS = WorkingSet
add_Disposed Method System.Void add_Disposed(Event...
...
我们可以通过筛选想要查看的元素,让这个冗长的信息列表更易于使用。 Get-Member
命令仅允许你列出属性成员。 属性的形式有数种。 cmdlet 使用值为 Properties
的 MemberType 参数显示类型的属性。 生成的列表仍会很长,但较之前更易于管理:
Get-Process | Get-Member -MemberType Properties
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
Name AliasProperty Name = ProcessName
...
ExitCode Property System.Int32 ExitCode {get;}
...
Handle Property System.IntPtr Handle {get;}
...
CPU ScriptProperty System.Object CPU {get=$this.Total...
...
Path ScriptProperty System.Object Path {get=$this.Main...
...
备注
MemberType 的允许值有 AliasProperty、CodeProperty、Property、NoteProperty、ScriptProperty、Properties、PropertySet、Method、CodeMethod、ScriptMethod、Methods、ParameterizedProperty、MemberSet 以及 All。
一个进程有 60 多个属性。 默认情况下,PowerShell 使用存储在以 .format.ps1xml
结尾的 XML 文件中的信息来决定某种对象类型的显示方式。 进程对象的格式设置定义存储在 DotNetTypes.format.ps1xml
中。
如果需要查看 PowerShell 默认显示的属性之外的属性,可使用 Format-*
cmdlet 对输出进行格式设置。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈