Gets the formatting data in the current session.


   [[-TypeName] <String[]>]
   [-PowerShellVersion <Version>]


The Get-FormatData cmdlet gets the formatting data in the current session.

The formatting data in the session includes formatting data from Format.ps1xml formatting files, such as those in the $PSHOME directory, formatting data for modules that you import into the session, and formatting data for commands that you import into your session by using the Import-PSSession cmdlet.

You can use this cmdlet to examine the formatting data. Then, you can use the Export-FormatData cmdlet to serialize the objects, convert them to XML, and save them in Format.ps1xml files.

For more information about formatting files in PowerShell, see about_Format.ps1xml.


Example 1: Get all formatting data

This example gets all the formatting data in the session.

Get-FormatData -PowerShellVersion 5.1


To ensure that the complete type formatting information is returned, you should always include the PowerShellVersion parameter with the value 5.1 when using a local invocation of Get-FormatData. If the parameter and value are omitted, you may not get all the correct type information.

Example 2: Get formatting data by type name

This example gets the formatting data items whose names begin with System.Management.Automation.Cmd.

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

Example 3: Examine a formatting data object

This example shows how to get a formatting data object and examine its properties.

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

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


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


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

Example 4: Get formatting data and export it

This example shows how to use Get-FormatData and Export-FormatData to export the formatting data that is added by a module.

$A = Get-FormatData -PowerShellVersion 5.1
Import-Module bitstransfer
$B = Get-FormatData -PowerShellVersion 5.1
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


The first four commands use the Get-FormatData, Import-Module, and Compare-Object cmdlets to identify the format type that the BitsTransfer module adds to the session.

The fifth command uses the Get-FormatData cmdlet to get the format type that the BitsTransfer module adds. It uses a pipeline operator (|) to send the format type object to the Export-FormatData cmdlet, which converts it back to XML and saves it in the specified format.ps1xml file.

The final command shows an excerpt of the format.ps1xml file content.

Example 5: Get formatting data based on the specified version of PowerShell

This example shows how to use Get-FormatData to get format data for a specified TypeName and PowerShell version.

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

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



Specify the version of PowerShell this cmdlet gets for the formatting data. Enter a two digit number separated by a period.

This parameter was added in PowerShell 5.1 to improve compatibility when remoting computers running older versions of PowerShell.

Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Specifies the type names that this cmdlet gets for the formatting data. Enter the type names. Wildcards are permitted.

Default value:None
Accept pipeline input:False
Accept wildcard characters:True



You cannot pipe input to this cmdlet.