Get-TypeData
获取当前会话中的扩展类型数据。
语法
Get-TypeData
[[-TypeName] <String[]>]
[<CommonParameters>]
说明
Get-TypeData
cmdlet 获取当前会话中的扩展类型数据。 这包括通过使用 Update-TypeData
cmdlet 的参数添加的 Types.ps1xml
文件和动态类型数据添加到会话的类型数据。
可以使用 Get-TypeData
返回的扩展类型数据来检查会话中的类型数据并将其发送到 Update-TypeData
和 Remove-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 |
输入
可以通过管道将包含类型名称的字符串传递给此 cmdlet。
输出
备注
Get-TypeData
仅获取当前会话中的扩展类型数据。 它不会获取计算机上的扩展类型数据,但尚未添加到当前会话,例如未导入到当前会话的模块中定义的扩展类型。