2012-12-12 38 views
5

参数有没有办法使用Get-会员时,为了获得参数的方法MemberType?获取方法在PowerShell中

实施例:

Get-Process | Get-Member -MemberType Method 

我从这个例子是需要在列表中的每个成员的参数和参数类型。

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

我将管道成员和参数信息到剃刀模板来生成相应的HTML。

编辑: 一个更好的例子应该是这样......

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

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

回答

6

Get-Member意味着更多的探索.NET类型比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对象的类型元数据。 BTW我得到了你在你的问题列出了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会给你在这种情况下。

+0

我更新了我的问题补充一点清晰的...我通常不会得到它的权利在战后初期:)在上面的例子中,我试图获得初始化COM对象的成员定义。我需要从那里获取每种方法的参数类型。 –

+0

@JoshuaDale - 感谢您的澄清。我更新了我的答案。 –

+0

是的,我认为你完全正确的获取COM对象的正确定义。即使在上面的示例中,我只能得到类型名称和参数名称......可能与COM接口的工作方式有关。感谢您的帮助和快速回复! –