Get-TypeData
取得目前工作階段中的延伸類型資料。
Syntax
Get-TypeData
[[-TypeName] <String[]>]
[<CommonParameters>]
Description
Cmdlet Get-TypeData
會取得目前會話中的擴充類型數據。 這包括依 Types.ps1xml
檔案新增至會話的類型數據,以及使用 Cmdlet 參數新增的 Update-TypeData
動態類型數據。
您可以使用傳回的擴充型別數據 Get-TypeData
來檢查會話中的類型數據,並將它傳送至 Update-TypeData
和 Remove-TypeData
Cmdlet。
擴充類型數據會將屬性和方法新增至 PowerShell 中的物件。 您可以比照使用物件類型中定義之屬性和方法的方式,來使用新增的屬性和方法。 不過,撰寫腳本時請注意,新增的屬性和方法可能不會出現在每個 PowerShell 會話中。
如需檔案的詳細資訊 Types.ps1xml
,請參閱 about_Types.ps1xml。 如需 Cmdlet 所新增之動態類型資料 Update-TypeData
的詳細資訊,請參閱 Update-TypeData
。
此 Cmdlet 是在 Windows PowerShell 3.0 中引進。
範例
範例 1:取得所有擴充類型數據
這個範例會取得目前會話中的所有擴充類型數據。
Get-TypeData
範例 2:依名稱取得類型
這個範例會取得目前會話中所有包含事件的名稱類型。
"*Eventing*" | Get-TypeData
TypeName Members
-------- -------
System.Diagnostics.Eventing.Reader.EventLogConfiguration {}System.Diagnostics.Eventing.Reader.EventLogRecord
{}System.Diagnostics.Eventing.Reader.ProviderMetadata
{[ProviderName, System.Management.Automation.Runspaces.AliasProper...
範例 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 及其 GetScriptBlock 屬性值中的 DateTime 索引鍵。
輸出會顯示文本區塊,此區塊會建立 PowerShell 中每個 System.DateTime 物件的 DateTime 屬性值。
參數
-TypeName
只針對具有指定名稱的類型,指定類型數據做為陣列。 根據預設, Get-TypeData
取得會話中的所有類型。
請輸入類型名稱或名稱模式。 即使是 System 命名空間中的類型,也需要具有通配符的完整名稱或名稱模式。 支援通配符,且 參數名稱 TypeName 是選擇性的。 您也可以使用管線將類型名稱傳送至 Get-TypeData
。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
輸入
您可以使用管線將類型名稱傳送至 Get-TypeData
。
輸出
備註
Get-TypeData
只會取得目前會話中的擴充類型數據。 它不會取得已在電腦上但尚未新增至目前工作階段的延伸類型資料,例如尚未匯入目前工作階段之模組中定義的延伸類型。