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 |
輸入
您可以使用管線將字串傳送至此 Cmdlet。
輸出
此 Cmdlet 會傳 回 ByteCollection。 這個物件代表位元組的集合。 它包含方法,可將位元組集合轉換成格式化的字元串,就像所 Format-Hex
傳回的每個輸出行一樣。 如果您指定 Path 或 LiteralPath 參數,物件也會包含包含每個位元組的檔案路徑。
備註
Windows PowerShell 包含下列的 Format-Hex
別名:
fhx
輸出最右邊的數據行會嘗試將位元組轉譯為字元:
一般而言,每個位元組都會解譯為 Unicode 字碼點,這表示:
- 可列印的 ASCII 字元一律正確轉譯
- 多位元組UTF-8字元永遠不會正確轉譯
- 只有當UTF-16字元的高階位元組發生
NUL
時,才會正確轉譯。