调用 .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