Get-FormatData

获取当前会话中的格式设置数据。

语法

Get-FormatData
   [[-TypeName] <String[]>]
   [-PowerShellVersion <Version>]
   [<CommonParameters>]

说明

Get-FormatData cmdlet 获取当前会话中的格式设置数据。

会话中的格式设置数据包括 Format.ps1xml 格式设置文件(例如,$PSHOME 目录中的文件)中的格式设置数据、导入会话中的模块的格式设置数据以及通过使用 Import-PSSession cmdlet 导入到会话中的命令的格式设置数据。

可以使用此 cmdlet 来检查格式设置数据。 然后,可以使用 Export-FormatData cmdlet 序列化对象(将它们转换为 XML)并将它们保存在 Format.ps1xml 文件中。

有关 PowerShell 中格式设置文件的详细信息,请参阅 about_Format.ps1xml

示例

示例 1:获取所有格式设置数据

此示例将获取会话中的所有格式设置数据。

Get-FormatData

示例 2:按类型名称获取格式设置数据

此示例获取名称以 System.Management.Automation.Cmd 开头的格式设置数据项。

Get-FormatData -TypeName 'System.Management.Automation.Cmd*'

示例 3:检查格式设置数据对象

此命令演示如何获取格式设置数据对象并检查其属性。

$F = Get-FormatData -TypeName 'System.Management.Automation.Cmd*'
$F

TypeName        FormatViewDefinition
--------        --------------------
HelpInfoShort   {help , TableControl}

$F.FormatViewDefinition[0].control

Headers          : {System.Management.Automation.TableControlColumnHeader,
                   System.Management.Automation.TableControlColumnHeader,
                   System.Management.Automation.TableControlColumnHeader,
                   System.Management.Automation.TableControlColumnHeader}
Rows             : {System.Management.Automation.TableControlRow}
AutoSize         : False
HideTableHeaders : False
GroupBy          :
OutOfBand        : False

$F.FormatViewDefinition[0].control.Headers

Label       Alignment Width
-----       --------- -----
CommandType Undefined    15
Name        Undefined    50
Version     Undefined    10
Source      Undefined     0

示例 4:获取并导出格式设置数据

此示例演示如何使用 Get-FormatDataExport-FormatData 导出由模块添加的格式设置数据。

$A = Get-FormatData
Import-Module bitstransfer
$B = Get-FormatData
Compare-Object $A $B

InputObject                                                SideIndicator
-----------                                                -------------
Microsoft.BackgroundIntelligentTransfer.Management.BitsJob =>

Get-FormatData *bits* | Export-FormatData -FilePath c:\test\bits.format.ps1xml
Get-Content c:\test\bits.format.ps1xml

<?xml version="1.0" encoding="utf-8"?><Configuration><ViewDefinitions>
<View><Name>Microsoft.BackgroundIntelligentTransfer.Management.BitsJob</Name>
...

前四个命令使用 Get-FormatDataImport-ModuleCompare-Object cmdlet 来标识由 BitsTransfer 模块添加到会话的格式类型。

第五个命令使用 Get-FormatData cmdlet 来获取 BitsTransfer 模块添加的格式类型。 它使用管道运算符 (|) 将格式类型对象发送到 Export-FormatData cmdlet,后者将该对象转换回 XML 并将其保存在指定的 format.ps1xml 文件中。

最后一个命令显示 format.ps1xml 文件内容的摘录。

示例 5:基于指定版本的 PowerShell 获取格式设置数据

此示例演示如何使用 Get-FormatData 获取指定 TypeName 和 PowerShell 版本的格式数据。

Get-FormatData -TypeName 'Microsoft.Powershell.Utility.FileHash' -PowerShellVersion $PSVersionTable.PSVersion

TypeNames                               FormatViewDefinition
---------                               --------------------
{Microsoft.Powershell.Utility.FileHash} {Microsoft.Powershell.Utility.FileHash}

重要

若要确保返回完整的类型格式设置信息,应始终包含具有相应版本的 PowerShellVersion 参数。 如果省略参数和值,则可能无法获取所有正确的类型信息。

参数

-PowerShellVersion

指定此 cmdlet 获取的格式设置数据的 PowerShell 版本。 输入用句号分隔的两位数。

在 PowerShell 5.1 中添加此参数以提高远程处理运行旧版 PowerShell 的计算机时的兼容性。

类型:Version
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-TypeName

指定此 cmdlet 获取的格式设置数据的类型名称。 输入类型名称。 允许使用通配符。

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

输入

None

不能通过管道将对象传递给此 cmdlet。

输出

ExtendedTypeDefinition