共用方式為


Get-FormatData

取得目前工作階段中的格式化資料。

Syntax

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

Description

Cmdlet Get-FormatData 會取得目前會話中的格式化數據。

會話中的格式化數據包括格式化 Format.ps1xml 檔案中的數據,例如 $PSHOME 目錄中的格式化數據、格式化您匯入會話的模組數據,以及使用 Import-PSSession Cmdlet 匯入會話的命令格式化數據。

您可以使用這個 Cmdlet 來檢查格式化資料。 然後,您可以使用 Export-FormatData Cmdlet 來串行化物件、將它們轉換成 XML,並將其儲存在檔案中 Format.ps1xml

如需在PowerShell中格式化檔案的詳細資訊,請參閱 about_Format.ps1xml

範例

範例 1:取得所有格式化數據

此範例會取得會話中的所有格式化數據。

Get-FormatData -PowerShellVersion 5.1

重要

若要確保傳回完整的型別格式資訊,在使用 的本機調用Get-FormatData時,您應該一律將PowerShellVersion 參數與值5.1一起包含。 如果省略 參數和值,您可能不會取得所有正確的類型資訊。

範例 2:依類型名稱取得格式化數據

此範例會取得名稱開頭為 System.Management.Automation.Cmd的數據項格式設定。

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

範例 3:檢查格式化數據物件

這個範例示範如何取得格式化資料物件,並檢查其屬性。

$F = Get-FormatData -TypeName 'System.Management.Automation.Cmd*' -PowerShellVersion 5.1
$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 -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

<?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

指定此 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