2011-09-20 17 views
2

如何在PowerShell 2.0中找到可用的靜態類和方法?如何查找PowerShell靜態類和方法?

+0

你的意思是你可以執行的命令?請參閱Get-Command http://technet.microsoft.com/en-us/library/ee176842.aspx或者,你的意思是靜態.Net類,它是靜態方法?這些不是Powershell特定的。 –

+0

是的,我的意思是可以使用PowerShell的.Net類和靜態方法。我不知道.Net,所以很高興看到可以通過PowerShell使用的可用類和方法的列表。 – jrara

+2

你可以使用所有.Net類,它們甚至不需要是靜態的。見http://technet.microsoft.com/en-us/library/dd347574.aspx我認爲你最好瀏覽http://msdn.microsoft.com/en-us/library/gg145045(v=VS.100 ).aspx –

回答

7

您可以使用PowerShell中的任何.NET類型及其靜態方法。要列舉當前加載到AppDomain中的所有,你可以這樣做:

[AppDomain]::CurrentDomain.GetAssemblies() | foreach { $_.GetTypes() } | foreach { $_.GetMethods() } | where { $_.IsStatic } | select DeclaringType, Name | format-table 

記住,你不侷限於靜態方法,您也可以使用實例化的new-object類型和調用實例方法。您可以在實例上使用get-member以獲取某個類型的方法。

另外,如果你想列出您的可用的cmdlet,只需調用:

Get-Command 
+0

哇,謝謝!有沒有辦法從這個列表中刪除重複項? – jrara

+0

我不認爲它有重複,但也許子類報告相同的靜態方法兩次(你有一個重複的例子?) – driis

+0

當我在我的PowerShell控制檯上運行這個,我得到例如。 System.Convert ToDateTime System.Convert ToDateTime System.Convert ToString System.Convert ToString – jrara

0

你必須從.NET框架提供類(靜態或其他)。

一旦你的類,你可以使用Get-Member

[Environment] | Get-Member 

PS:「Windows PowerShell中食譜」由李福爾摩斯有一個附錄,其中列出但從Powershell的/系統管理員點一些有用的類。該清單(和該書)非常有用。

+0

謝謝,我還在尋找可用的課程...... – jrara

3

爲了得到一個類型或對象的靜態成員,管它來獲取會員並指定靜態開關:

[math] | Get-Member -Static 
0

先生driis,你是男人!完全是我的一天!

我冒昧地修改它有點所以它返回整個列表中沒有重複:

PS C:\Users\Administrator> [AppDomain]::CurrentDomain.GetAssemblies() | foreach { $_.GetTypes() } | foreach { $_.GetMethods() } | where { $_.IsStatic } | select DeclaringType | Out-File assemblies.txt 

然後讀取assemblies.txt文件,但只得到唯一的行:

cat .\assemblies.txt Get-Unique