在PowerShell中获取方法的参数

时间:2012-12-12 16:02:12

标签: powershell

使用Get-Member时,有没有办法获取Method MemberType的参数?

示例:

Get-Process | Get-Member -MemberType Method

本例中我需要的是列表中每个成员的参数和参数类型。

这样做的目的是获取COM +对象的成员,参数和参数类型,我必须为其创建文档。所以一个例子不能特定于.net。

我将把成员和参数信息传递到剃刀模板中以生成相应的html。

编辑: 一个更好的例子是......

$comObj = New-Object -ComObject COMAdmin.COMAdminCatalog
$comObj | Get-Member -MemberType Method

在这个例子中,我需要为返回的每个方法获取参数名称(如果有的话)。

1 个答案:

答案 0 :(得分:7)

对于探索.NET类型而言,

Get-Member比PowerShell命令更重要。对于一个简单的"视图"一个命令的参数试试这个:

Get-Command Get-Process -Syntax

有关参数的详细信息,请尝试以下方法:

Get-Command Get-Process | Select -Expand ParameterSets

如果您正在寻找有关.NET类型成员参数的更多详细信息,请尝试以下操作:

C:\PS> Get-Process | Get-Member -Name WaitForExit

   TypeName: System.Diagnostics.Process

Name        MemberType Definition
----        ---------- ----------
WaitForExit Method     bool WaitForExit(int milliseconds), void WaitForExit()

对于COM对象,这可能会更受欢迎。 PowerShell并不总是获取COM对象的类型元数据。顺便说一下,我为你在问题中列出的COM对象获取参数信息(参数类型):

C:\PS> $comObj = New-Object -ComObject COMAdmin.COMAdminCatalog
C:\PS> $comObj | gm QueryApplicationFile


   TypeName: System.__ComObject#{790c6e0b-9194-4cc9-9426-a48a63185696}

Name                 MemberType Definition
----                 ---------- ----------
QueryApplicationFile Method     void QueryApplicationFile (string, string, string, bool, bool, SAFEARRAY(Variant))

我担心这是PowerShell在这种情况下会给你的所有信息。