Get-TypeData

获取当前会话中的扩展类型数据。

语法

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

说明

Get-TypeData cmdlet 获取当前会话中的扩展类型数据。 这包括通过使用 Update-TypeData cmdlet 的参数添加的 Types.ps1xml 文件和动态类型数据添加到会话的类型数据。

可以使用 Get-TypeData 返回的扩展类型数据来检查会话中的类型数据并将其发送到 Update-TypeDataRemove-TypeData cmdlet。

扩展类型数据将属性和方法添加到 PowerShell 中的对象。 可以采用与使用对象类型中定义的属性和方法相同的方式使用添加的属性和方法。 但是,编写脚本时,请注意,添加的属性和方法可能不会出现在每个 PowerShell 会话中。

有关 Types.ps1xml 文件的详细信息,请参阅 about_Types.ps1xml。 有关 Update-TypeData cmdlet 添加的动态类型数据的详细信息,请参阅 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 及其 GetScriptBlock 属性值中的 DateTime 键。

输出显示脚本块,用于在 PowerShell 中创建每个 System.DateTime 对象的 DateTime 属性的值。

参数

-TypeName

仅将类型数据指定为具有指定名称的类型的数组。 默认情况下,Get-TypeData 获取会话中的所有类型。

输入类型名称或名称模式。 即使对于系统命名空间中的类型,也需要具有通配符的全名或名称模式。 支持通配符,TypeName 的参数名称是可选的。 还可以通过管道将类型名称传递给 Get-TypeData

类型:String[]
Position:0
默认值:None
必需:False
接受管道输入:True
接受通配符:True

输入

String

可以通过管道将包含类型名称的字符串传递给此 cmdlet。

输出

TypeData

备注

Get-TypeData 仅获取当前会话中的扩展类型数据。 它不会获取计算机上的扩展类型数据,但尚未添加到当前会话,例如未导入到当前会话的模块中定义的扩展类型。