呼叫 .Net 庫方法

通過將完整的類名封裝在第三個括號中,然後使用::呼叫方法,可以從 PowerShell 呼叫靜態 .Net 庫方法

#calling Path.GetFileName()
C:\> [System.IO.Path]::GetFileName('C:\Windows\explorer.exe')
explorer.exe

可以從類本身呼叫靜態方法,但呼叫非靜態方法需要 .Net 類(物件)的例項。

例如,無法從 System.DateTime 類本身呼叫 AddHours 方法。它需要一個類的例項:

C:\> [System.DateTime]::AddHours(15)
Method invocation failed because [System.DateTime] does not contain a method named 'AddHours'.
At line:1 char:1
+ [System.DateTime]::AddHours(15)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound

在這種情況下,我們首先建立一個物件 ,例如:

C:\> $Object = [System.DateTime]::Now

然後,我們可以使用該物件的方法,甚至是無法直接從 System.DateTime 類呼叫的方法,如 AddHours 方法:

C:\> $Object.AddHours(15)

Monday 12 September 2016 01:51:19