共用方式為


Format-Hex

將檔案或其他輸入顯示為十六進位。

Syntax

Format-Hex
      [-Path] <string[]>
      [<CommonParameters>]
Format-Hex
      -LiteralPath <string[]>
      [<CommonParameters>]
Format-Hex
      -InputObject <Object>
      [-Encoding <string>]
      [-Raw]
      [<CommonParameters>]

Description

Cmdlet 會將 Format-Hex 檔案或其他輸入顯示為十六進位值。 若要判斷輸出中字元的位移,請將數據列最左邊的數位新增至該字元數據行頂端的數位。

Cmdlet Format-Hex 可協助您判斷損毀檔案的檔類型,或可能沒有擴展名的檔案。 您可以執行此 Cmdlet,然後讀取十六進位輸出以取得檔案資訊。

Format-Hex在檔案上使用 時,Cmdlet 會忽略換行符,並在一個字串中傳回檔案的整個內容,並保留換行符。

範例

範例 1:取得字串的十六進位表示法

此命令會傳回字串的十六進位值。

'Hello World' | Format-Hex

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000   48 65 6C 6C 6F 20 57 6F 72 6C 64                 Hello World

Hello World 字串會從管線向下傳送至 Format-Hex Cmdlet。 的十六進位輸出 Format-Hex 會顯示字串中每個字元的值。

範例 2:從十六進位輸出尋找檔類型

這個範例會使用十六進位輸出來判斷檔類型。 Cmdlet 會顯示檔案的完整路徑和十六進位值。

若要測試下列命令,請在本機計算機上建立現有 PDF 檔案的複本,並將複製的檔案重新命名為 File.t7f

Format-Hex -Path .\File.t7f

Path: C:\Test\File.t7f

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000   25 50 44 46 2D 31 2E 35 0D 0A 25 B5 B5 B5 B5 0D  %PDF-1.5..%????.
00000010   0A 31 20 30 20 6F 62 6A 0D 0A 3C 3C 2F 54 79 70  .1 0 obj..<</Typ
00000020   65 2F 43 61 74 61 6C 6F 67 2F 50 61 67 65 73 20  e/Catalog/Pages

Cmdlet Format-Hex 會使用 Path 參數指定目前目錄中的檔案名。 File.t7f 擴展名 .t7f 不常見,但十六進位輸出 %PDF 會顯示它是 PDF 檔案。

範例 3:顯示原始十六進位輸出

根據預設 Format-Hex ,選擇數值數據類型的精簡輸出:如果值足夠小,則會使用單一位元組或雙位元組序列。 Raw 參數會停用此行為。

PS> 1,2,3,1000 | Format-Hex

           Path:

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000   01 02 03 E8 03                                   ...è.


PS> 1,2,3,1000 | Format-Hex -Raw

           Path:

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000   01 00 00 00 02 00 00 00 03 00 00 00 E8 03 00 00  ............è...

請注意輸出的差異。 Raw 參數會將數字顯示為 4 位元組值,其 Int32 類型為 true。

參數

-Encoding

指定輸出的編碼方式。 這隻適用於 [string] 輸入。 參數對數值類型沒有任何影響。 預設值是 ASCII

此參數可接受的值如下:

  • Ascii 使用 ASCII (7 位) 字元集。
  • BigEndianUnicode 使用UTF-16搭配 big-endian 位元組順序。
  • Unicode 使用UTF-16搭配位元組順序。
  • UTF7 使用UTF-7。
  • UTF8 使用UTF-8。
  • UTF32 使用UTF-32搭配位元組順序。

輸入中的非 ASCII 字元會輸出為常值 ? 字元,因而造成資訊遺失。

Type:String
Accepted values:ASCII, BigEndianUnicode, Unicode, UTF7, UTF8, UTF32
Position:Named
Default value:ASCII
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

指定要格式化的物件。 輸入包含 物件的變數,或輸入取得物件的命令或表達式。

只支援特定 量型別和 [system.io.fileinfo]

支援的純量類型如下:

  • [string]
  • [byte]
  • [int], [int32]
  • [long], [int64]
Type:Object
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

指定檔案的完整路徑。 LiteralPath 的值會與類型完全相同使用。 此參數不接受通配符。 若要指定檔案的多個路徑,請以逗號分隔路徑。 如果 LiteralPath 參數包含逸出字元,請以單引弧括住路徑。 PowerShell 不會將單引號字串中的任何字元解譯為逸出序列。 如需詳細資訊,請參閱 about_Quoting_Rules

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

-Path

指定檔案的路徑。 使用點 (.) 來指定目前的位置。 接受通配符 (*) ,可用來指定位置中的所有專案。 如果 Path 參數包含逸出字元,請以單引弧括住路徑。 若要指定檔案的多個路徑,請以逗號分隔路徑。

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

-Raw

根據預設 Format-Hex ,選擇數值數據類型的精簡輸出:如果值足夠小,則會使用單一位元組或雙位元組序列。 Raw 參數會停用此行為。

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

輸入

String

您可以使用管線將字串傳送至此 Cmdlet。

輸出

ByteCollection

此 Cmdlet 會傳 回 ByteCollection。 這個物件代表位元組的集合。 它包含方法,可將位元組集合轉換成格式化的字元串,就像所 Format-Hex傳回的每個輸出行一樣。 如果您指定 PathLiteralPath 參數,物件也會包含包含每個位元組的檔案路徑。

備註

Windows PowerShell 包含下列的 Format-Hex別名:

  • fhx

輸出最右邊的數據行會嘗試將位元組轉譯為字元:

一般而言,每個位元組都會解譯為 Unicode 字碼點,這表示:

  • 可列印的 ASCII 字元一律正確轉譯
  • 多位元組UTF-8字元永遠不會正確轉譯
  • 只有當UTF-16字元的高階位元組發生 NUL時,才會正確轉譯。