共用方式為


Format-Hex

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

語法

Path (預設值)

Format-Hex
    [-Path] <string[]>
    [<CommonParameters>]

LiteralPath

Format-Hex
    -LiteralPath <string[]>
    [<CommonParameters>]

ByInputObject

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

Description

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

Format-Hex Cmdlet 可協助您判斷損毀檔案的文件類型,或可能沒有擴展名的檔案。 您可以執行此 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 檔。

參數

-Encoding

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

此參數可接受的值如下:

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

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

參數屬性

類型:String
預設值:ASCII
接受的值:ASCII, BigEndianUnicode, Unicode, UTF7, UTF8, UTF32
支援萬用字元:False
不要顯示:False

參數集

ByInputObject
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-InputObject

用於管線輸入。 管道輸入僅支援 [string][system.io.fileinfo] 實例進行管道傳輸 Get-ChildItem

參數屬性

類型:Object
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByInputObject
Position:Named
必要:True
來自管線的值:True
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-LiteralPath

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

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False
別名:PSPath

參數集

LiteralPath
Position:Named
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Path

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

參數屬性

類型:

String[]

預設值:None
支援萬用字元:True
不要顯示:False

參數集

Path
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters

輸入

String

您可以使用管線將字串傳送到此 cmdlet。

輸出

ByteCollection

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

備註

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

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

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