2012-12-12 39 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接口的工作方式有關。感謝您的幫助和快速回復! –