Get-FormatData
Gets the formatting data in the current session.
Syntax
Get-FormatData
[[-TypeName] <String[]>]
[-PowerShellVersion <Version>]
[<CommonParameters>]
Description
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.
Examples
Example 1: Get all formatting data
This example gets all the formatting data in the session.
Get-FormatData
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*'
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*'
$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
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
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>
...
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}
Important
To ensure that the complete type formatting information is returned, you should always include the PowerShellVersion parameter with the appropriate version. If the parameter and value are omitted, you may not get all the correct type information.
Parameters
-PowerShellVersion
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.
Type: | Version |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TypeName
Specifies the type names that this cmdlet gets for the formatting data. Enter the type names. Wildcards are permitted.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Inputs
None
You can't pipe objects to this cmdlet.