当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 获取类型数据 (Microsoft.PowerShell.Utility)

作者:精品下载站 日期:2024-12-14 02:06:24 浏览:12 分类:玩电脑

获取类型数据 (Microsoft.PowerShell.Utility)


Get-TypeData

模块 :Microsoft.PowerShell.Utility

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

句法

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

描述

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

您可以使用 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 中的 DateTime 键及其 GetScriptBlock 属性值。

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

参数

-TypeName

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

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

类型 :

String[]

位置:

0

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

True

输入

字符串

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

输出

类型数据

笔记

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

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯