Get-FormatData

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

语法

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

说明

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

会话中的格式设置数据包括格式化 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,该 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

指定此 cmdlet 为格式设置数据获取的 PowerShell 版本。 输入一个以句点分隔的两位数。

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

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TypeName

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

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

输入

None

不能通过管道将输入传递给此 cmdlet。

输出

ExtendedTypeDefinition