Export-FormatData

將目前會話的格式資料儲存在格式化檔案中。

Syntax

Export-FormatData
      -InputObject <ExtendedTypeDefinition[]>
      -Path <String>
      [-Force]
      [-NoClobber]
      [-IncludeScriptBlock]
      [<CommonParameters>]
Export-FormatData
      -InputObject <ExtendedTypeDefinition[]>
      -LiteralPath <String>
      [-Force]
      [-NoClobber]
      [-IncludeScriptBlock]
      [<CommonParameters>]

Description

Cmdlet Export-FormatData 會從目前會話中的格式化物件建立 PowerShell 格式檔案 (format.ps1xml)。 它會採用 ExtendedTypeDefinition 物件,以 Get-FormatData XML 格式傳回並儲存這些物件。

PowerShell 會使用格式化檔案中的數據 (format.ps1xml) 來產生會話中 Microsoft .NET Framework 對象的默認顯示。 您可以檢視和編輯格式化檔案,並使用 Update-FormatData Cmdlet 將格式化數據新增至會話。

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

範例

範例 1:匯出會話格式數據

Get-FormatData -TypeName "*" | Export-FormatData -Path "allformat.ps1xml" -IncludeScriptBlock

此命令會將會話中的所有格式數據匯出至 AllFormat.ps1xml 檔案。

命令會 Get-FormatData 使用 Cmdlet 來取得會話中的格式數據。 TypeName 參數的 值*指示 Cmdlet 取得會話中的所有數據。

此命令會使用管線運算符 (|) 將命令中的格式數據 Get-FormatData 傳送至 Export-FormatData Cmdlet,以將格式數據匯出至 AllFormat.ps1 檔案。

此命令 Export-FormatData使用 IncludeScriptBlock 參數,在檔案的格式數據中包含腳本區塊。

範例 2:匯出類型的格式數據

$F = Get-FormatData -TypeName "helpinfoshort"
Export-FormatData -InputObject $F -Path "c:\test\help.format.ps1xml" -IncludeScriptBlock

這些命令會將 HelpInfoShort 類型的格式數據匯出至 Help.format.ps1xml 檔案。

第一個命令會Get-FormatData使用 Cmdlet 來取得 HelpInfoShort 類型的格式數據,並將它儲存在變數中$F

第二個命令會使用 Cmdlet 的 Export-FormatData InputObject 參數來輸入儲存在變數中的$F格式數據。 它也會使用 IncludeScriptBlock 參數在輸出中包含腳本區塊。

範例 3:匯出不含腳本區塊的格式數據

Get-FormatData -TypeName "System.Diagnostics.Process" | Export-FormatData -Path process.format.ps1xml
Update-FormatData -PrependPath ".\process.format.ps1xml"
Get-Process p*

Handles  NPM(K)  PM(K)  WS(K) VM(M)   CPU(s)    Id ProcessName
-------  ------  -----  ----- -----   ------    -- -----------
323                                       5600 powershell
336                                       3900 powershell_ise
138                                       4076 PresentationFontCache

此範例顯示從命令省略 IncludeScriptBlock 參數 Export-FormatData 的效果。

第一個命令會Get-FormatData使用 Cmdlet 來取得 Get-Process Cmdlet 傳回之 System.Diagnostics.Process 物件的格式數據。 命令會使用管線運算符 (|) 將格式數據傳送至 Export-FormatData Cmdlet,以將它匯出至目前目錄中的 Process.format.ps1xml 檔案。

在此情況下, Export-FormatData 命令不會使用 IncludeScriptBlock 參數。

第二個命令會 Update-FormatData 使用 Cmdlet 將 Process.format.ps1xml 檔案新增至目前的會話。 命令會使用 PrependPath 參數,以確保在處理對象的標準格式化數據之前,找到 Process.format.ps1xml 檔案中進程物件的格式化數據。

第三個命令會顯示這項變更的效果。 命令會 Get-Process 使用 Cmdlet 來取得名稱開頭為 P 的進程。輸出顯示使用文本區塊計算的屬性值在顯示中遺失。

參數

-Force

強制命令執行,而不要求使用者確認。

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

-IncludeScriptBlock

指出是否匯出格式數據的腳本區塊。

因為腳本區塊包含程序代碼,而且可以惡意使用,所以預設不會匯出它們。

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

-InputObject

指定要匯出的格式資料物件。 輸入包含物件或取得物件的命令的變數,例如 Get-FormatData 命令。 您也可以使用管線會從 Get-FormatData 傳送至 Export-FormatData

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

-LiteralPath

指定輸出檔的位置。 不同於Path參數,LiteralPath的值會與輸入時完全相同。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。

Type:String
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NoClobber

指出 Cmdlet 不會覆寫現有的檔案。 根據預設, Export-FormatData 除非檔案具有唯讀屬性,否則會覆寫沒有警告的檔案。

若要直接 Export-FormatData 覆寫唯讀檔案,請使用 Force 參數。

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

指定輸出檔的位置。 輸入路徑 (選擇性) 和擴展名為 format.ps1xml 的檔名。 如果您省略路徑, Export-FormatData 請在目前目錄中建立檔案。

如果您使用 .ps1xml 以外的擴展名, Update-FormatData Cmdlet 將無法辨識檔案。

如果您指定現有的檔案, Export-FormatData 除非檔案具有只讀屬性,否則會覆寫檔案而不發出警告。 若要覆寫唯讀檔案,請使用 Force 參數。 若要防止覆寫檔案,請使用 NoClobber 參數。

Type:String
Aliases:FilePath
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

輸入

ExtendedTypeDefinition

您可以使用管線 將 ExtendedTypeDefinition 物件從 Get-FormatData 傳送至此 Cmdlet。

輸出

None

此 Cmdlet 不會傳回任何輸出。 它會產生檔案,並將它儲存在指定的路徑中。

備註

  • 若要使用任何格式化檔案,包括導出的格式檔案,會話的執行原則必須允許腳本和組態檔執行。 如需詳細資訊,請參閱 about_Execution_Policies