共用方式為


Format-Hex

以十六進位格式顯示檔案或其他輸入。

Syntax

Format-Hex
      [-Path] <string[]>
      [<CommonParameters>]
Format-Hex
      -LiteralPath <string[]>
      [<CommonParameters>]
Format-Hex
      -InputObject <Object>
      [-Encoding <string>]
      [<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 檔案。

參數

-Encoding

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

此參數可接受的值如下所示:

  • Ascii 使用 ASCII (7 位) 字元集。
  • BigEndianUnicode 使用UTF-16搭配位元組位元組順序。
  • 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

用於管線輸入。 管線輸入僅 [string] 支援 和 [system.io.fileinfo] 實例,以便從 Get-ChildItem進行管線處理。

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

輸入

String

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

輸出

ByteCollection

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

備註

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

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

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