Format-Hex
Zobrazí soubor nebo jiný vstup jako šestnáctkový.
Syntaxe
Path
Format-Hex
[-Path] <String[]>
[-Count <Int64>]
[-Offset <Int64>]
[<CommonParameters>]
LiteralPath
Format-Hex
-LiteralPath <String[]>
[-Count <Int64>]
[-Offset <Int64>]
[<CommonParameters>]
ByInputObject
Format-Hex
-InputObject <PSObject>
[-Encoding <Encoding>]
[-Count <Int64>]
[-Offset <Int64>]
[-Raw]
[<CommonParameters>]
Description
Rutina Format-Hex zobrazí soubor nebo jiný vstup jako šestnáctkové hodnoty. Pokud chcete určit posun znaku z výstupu, přidejte číslo vlevo od řádku k číslu v horní části sloupce daného znaku.
Rutina Format-Hex vám může pomoct určit typ souboru poškozeného souboru nebo souboru, který nemusí mít příponu názvu souboru. Tuto rutinu můžete spustit a pak přečíst šestnáctkový výstup a získat informace o souboru.
Při použití Format-Hex v souboru rutina ignoruje znaky nového řádku a vrátí celý obsah souboru v jednom řetězci se zachovanými znaky nového řádku.
Příklady
Příklad 1: Získání šestnáctkové reprezentace řetězce
Tento příkaz vrátí šestnáctkové hodnoty řetězce.
'Hello World' | Format-Hex
Label: String (System.String) <2944BEC3>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 48 65 6C 6C 6F 20 57 6F 72 6C 64 Hello World
Řetězec Hello World se odešle do rutiny Format-Hex. Šestnáctkový výstup z Format-Hex zobrazuje hodnoty jednotlivých znaků v řetězci.
Příklad 2: Vyhledání typu souboru z šestnáctkového výstupu
Tento příklad používá šestnáctkový výstup k určení typu souboru. Rutina zobrazí úplnou cestu k souboru a šestnáctkové hodnoty.
Pokud chcete otestovat následující příkaz, vytvořte kopii existujícího souboru PDF v místním počítači a přejmenujte zkopírovaný soubor na File.t7f.
Format-Hex -Path .\File.t7f -Count 48
Label: C:\Test\File.t7f
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 25 50 44 46 2D 31 2E 35 0D 0A 25 B5 B5 B5 B5 0D %PDF-1.5..%????.
0000000000000010 0A 31 20 30 20 6F 62 6A 0D 0A 3C 3C 2F 54 79 70 .1 0 obj..<</Typ
0000000000000020 65 2F 43 61 74 61 6C 6F 67 2F 50 61 67 65 73 20 e/Catalog/Pages
Rutina Format-Hex používá parametr Path k určení názvu souboru v aktuálním adresáři File.t7f. Přípona souboru .t7f je neobvyklá, ale šestnáctkový výstup %PDF ukazuje, že se jedná o soubor PDF. V tomto příkladu se parametr Count používá k omezení výstupu na prvních 48 bajtů souboru.
Příklad 3: Formátování pole různých datových typů
Tento příklad používá pole různých datových typů ke zvýraznění toho, jak Format-Hex zpracovává je v kanálu.
Každý objekt projde kanálem a procesem zvlášť. Pokud se ale jedná o číselná data a sousední objekt je také číselný, seskupí je do jednoho výstupního bloku.
'Hello world!', 1, 1138, 'foo', 'bar', 0xdeadbeef, 1gb, 0b1101011100 , $true, $false |
Format-Hex
Label: String (System.String) <24F1F0A3>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 48 65 6C 6C 6F 20 77 6F 72 6C 64 21 Hello world!
Label: Int32 (System.Int32) <2EB933C5>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 01 00 00 00 72 04 00 00 � r�
Label: String (System.String) <4078B66C>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 66 6F 6F foo
Label: String (System.String) <51E4A317>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 62 61 72 bar
Label: Int32 (System.Int32) <5ADF167B>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 EF BE AD DE 00 00 00 40 5C 03 00 00 ï¾-Þ @\�
Label: Boolean (System.Boolean) <7D8C4C1D>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 01 00 00 00 00 00 00 00 �
Parametry
-Count
Představuje počet bajtů, které se mají zahrnout do šestnáctkového výstupu.
Tento parametr byl představen v PowerShellu 6.2.
Vlastnosti parametru
| Typ: | Int64 |
| Default value: | Int64.MaxValue |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Encoding
Určuje kódování vstupních řetězců. To platí jenom pro [string] vstup. Parametr nemá žádný vliv na číselné typy. Výstupní hodnota je vždy utf8NoBOM.
Přijatelné hodnoty pro tento parametr jsou následující:
-
ascii: Používá kódování znakové sady ASCII (7bitová). -
ansi: Používá kódování pro znakovou stránku ANSI aktuální kultury. Tato možnost byla přidána v PowerShellu 7.4. -
bigendianunicode: Kóduje ve formátu UTF-16 s použitím pořadí bajtů big-endian. -
bigendianutf32: Kóduje ve formátu UTF-32 s použitím big-endian bajtového pořadí. -
oem: Používá výchozí kódování pro MS-DOS a konzolové programy. -
unicode: Kóduje ve formátu UTF-16 pomocí pořadí malých bajtů. -
utf7: Kóduje ve formátu UTF-7. -
utf8: Kóduje ve formátu UTF-8. -
utf8BOM: Kódování ve formátu UTF-8 pomocí značky pořadí bajtů (BOM) -
utf8NoBOM: Kódování ve formátu UTF-8 bez značky pořadí bajtů (BOM) -
utf32: Kóduje ve formátu UTF-32.
Počínaje PowerShellem 6.2 umožňuje parametr Encoding také číselné ID registrovaných znakových stránek (například -Encoding 1251) nebo názvy řetězců registrovaných znakových stránek (například -Encoding "windows-1251"). Další informace naleznete v dokumentaci .NET pro Encoding.CodePage.
Od verze PowerShell 7.4 můžete použít hodnotu Ansi parametru Encoding a předat číselné ID pro znakovou stránku ANSI aktuální kultury, aniž by bylo nutné ji zadávat ručně.
Poznámka:
UTF-7* se už nedoporučuje používat. Od PowerShellu 7.1 se zapíše upozornění, pokud pro parametr utf7 zadáte .
Vlastnosti parametru
| Typ: | Encoding |
| Default value: | UTF8NoBOM |
| Přípustné hodnoty: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
ByInputObject
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-InputObject
Určuje objekty, které mají být formátovány. Zadejte proměnnou obsahující objekty nebo zadejte příkaz nebo výraz, který objekty získá.
Podporují se pouze určité skalární typy a [System.IO.FileInfo].
Mezi podporované skalární typy patří:
-
[string],[char] -
[byte],[sbyte] -
[int16],[uint16],[short],[ushort] -
[int],[uint],[int32], ,[uint32] -
[long],[ulong],[int64],[uint64] -
[single], ,[float][double] [boolean]
Před PowerShellem 6.2 by Format-Hex zpracovával vstup kanálu s více vstupními typy seskupením všech objektů, jako jsou objekty. Teď zpracovává každý jednotlivý objekt při průchodu kanálem a nebude seskupovat objekty dohromady, pokud objekty nejsou sousední.
Vlastnosti parametru
| Typ: | PSObject |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
ByInputObject
| Position: | Named |
| Povinné: | True |
| Hodnota z kanálu: | True |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-LiteralPath
Určuje úplnou cestu k souboru. Hodnota LiteralPath se používá přesně tak, jak je zadána. Tento parametr nepřijímá zástupné znaky. Pokud chcete zadat více cest k souborům, oddělte je čárkou. Pokud parametr LiteralPath obsahuje řídicí znaky, uzavřete cestu do jednoduchých uvozovek. PowerShell neinterpretuje žádné znaky v jednom řetězci v uvozování jako řídicí sekvence. Další informace najdete v about_Quoting_Rules.
Vlastnosti parametru
| Typ: | String[] |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | PSPath, PO |
Sady parametrů
LiteralPath
| Position: | Named |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Offset
Představuje počet bajtů, které se mají přeskočit z části šestnáctkového výstupu.
Tento parametr byl představen v PowerShellu 6.2.
Vlastnosti parametru
| Typ: | Int64 |
| Default value: | 0 |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Path
Určuje cestu k souborům. K určení aktuálního umístění použijte tečku (.). Zástupný znak (*) je přijat a lze ho použít k určení všech položek v umístění. Pokud parametr Path obsahuje řídicí znaky, uzavřete cestu do jednoduchých uvozovek. Pokud chcete zadat více cest k souborům, oddělte je čárkou.
Vlastnosti parametru
| Typ: | String[] |
| Default value: | None |
| Podporuje zástupné znaky: | True |
| DontShow: | False |
Sady parametrů
Path
| Position: | 0 |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Raw
Tento parametr už nic nedělá. Zachovává se kvůli kompatibilitě skriptu.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
ByInputObject
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
CommonParameters
Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.
Vstupy
String
Do tohoto příkazletu můžete přesměrovat řetězec.
Výstupy
ByteCollection
Tato rutina vrátí ByteCollection. Tento objekt představuje kolekci bajtů. Obsahuje metody, které převádějí kolekci bajtů na řetězec formátovaný jako každý řádek výstupu vrácený Format-Hex. Výstup také uvádí, že typ bajtů se zpracovávají. Pokud zadáte parametr Path nebo LiteralPath, objekt obsahuje cestu k souboru, který obsahuje každý bajt. Pokud předáte řetězec, logickou hodnotu, celé číslo atd., označí se odpovídajícím způsobem.
Poznámky
PowerShell obsahuje následující aliasy pro Format-Hex:
- Všechny platformy:
fhx
Pravý sloupec výstupu se pokusí vykreslit bajty jako znaky ASCII:
Obecně platí, že každý bajt je interpretován jako bod kódu Unicode, což znamená, že:
- Tisknutelné znaky ASCII se vždy vykreslují správně.
- Vícebajtů znaků UTF-8 se nikdy nevykresluje správně
- UTF-16 znaků se správně vykreslují pouze v případě, že jejich bajt s vysokým pořadím je
NUL.