Get-TypeData

取得目前會話中的擴充型別數據。

Syntax

Get-TypeData
   [[-TypeName] <String[]>]
   [<CommonParameters>]

Description

Cmdlet 會 Get-TypeData 取得目前會話中的擴充型別數據。 這包括透過 Types.ps1xml 檔案新增至會話的類型數據,以及使用 Cmdlet 參數新增的 Update-TypeData 動態類型數據。

您可以使用傳回的擴充型別數據 Get-TypeData 來檢查會話中的型別數據,並將它傳送至 Update-TypeDataRemove-TypeData Cmdlet。

擴充類型數據會將屬性和方法新增至 PowerShell 中的物件。 您可以使用與使用物件類型中所定義之屬性和方法相同的方式來使用新增的屬性和方法。 不過,撰寫腳本時,請注意,新增的屬性和方法可能不會出現在每個 PowerShell 會話中。

如需檔案的詳細資訊 Types.ps1xml ,請參閱 about_Types.ps1xml。 如需 Cmdlet 新增之動態類型資料 Update-TypeData 的詳細資訊,請參閱 Update-TypeData

此 Cmdlet 已在 Windows PowerShell 3.0 中引進。

範例

範例 1:取得所有擴充類型數據

這個範例會取得目前會話中的所有擴充型別數據。

Get-TypeData

範例 2:依名稱取得類型數據

這個範例會取得目前會話中名稱為 「System.IO」 的所有類型數據。

Get-TypeData -TypeName System.IO.*

TypeName                Members
--------                -------
System.IO.DirectoryInfo {[Mode, System.Management.Automation.Runspaces.CodePropert…
System.IO.FileInfo      {[Mode, System.Management.Automation.Runspaces.CodePropert…

範例 3:取得建立屬性值的腳本區塊

這個範例會取得腳本區塊,這個區塊會建立 EventLogEntry 物件的 EventID 屬性值

(Get-TypeData *EventLogEntry*).Members.EventID

GetScriptBlock                     SetScriptBlock     IsHidden Name
--------------                     --------------     -------- ----
$this.get_EventID() -band 0xFFFF                         False EventID

範例 4:取得腳本區塊,該區塊會定義指定對象的屬性

此範例會取得腳本區塊,此區塊會定義PowerShell中 System.DateTime 物件的 DateTime 屬性

(Get-TypeData -TypeName System.DateTime).Members["DateTime"].GetScriptBlock
if ((& { Set-StrictMode -Version 1; $this.DisplayHint }) -ieq  "Date") {
    "{0}" -f $this.ToLongDateString()
}
elseif ((& { Set-StrictMode -Version 1; $this.DisplayHint }) -ieq "Time") {
    "{0}" -f  $this.ToLongTimeString()
}
else {
    "{0} {1}" -f $this.ToLongDateString(), $this.ToLongTimeString()
}

命令會Get-TypeData使用 Cmdlet 來取得 System.DataTime 類型的擴充型別數據。 此命令會取得 TypeData 物件的 Members 屬性。

Members 屬性包含擴充類型數據所定義之屬性和方法的哈希表。 Members 哈希表中的每個索引鍵都是屬性或方法名稱,而每個值都是屬性或方法值的定義。

此命令會取得 Members 中的 DateTime 機碼及其 GetScriptBlock 屬性值。

輸出會顯示文本區塊,此區塊會建立 PowerShell 中每個 System.DateTime 物件的 DateTime 屬性值。

參數

-TypeName

僅針對具有指定名稱的類型,指定類型數據做為陣列。 根據預設, Get-TypeData 會取得會話中的所有類型。

輸入類型名稱或名稱模式。 即使系統命名空間中的類型,也需要具有通配符的完整名稱或名稱模式。 支援通配符,而且 TypeName 參數名稱是選擇性的。 您也可以使用管線將類型名稱傳送至 Get-TypeData

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

輸入

String

您可以使用管線將包含類型名稱的字串傳送至此 Cmdlet。

輸出

TypeData

備註

Get-TypeData 只會取得目前會話中的擴充型別數據。 它不會取得電腦上的擴充型別數據,但尚未新增至目前的會話,例如未匯入目前會話之模組中所定義的擴充類型。