Format-Hex
Zobrazí soubor nebo jiný vstup jako šestnáctkový.
Format-Hex
[-Path] <String[]>
[-Count <Int64>]
[-Offset <Int64>]
[<CommonParameters>]
Format-Hex
-LiteralPath <String[]>
[-Count <Int64>]
[-Offset <Int64>]
[<CommonParameters>]
Format-Hex
-InputObject <PSObject>
[-Encoding <Encoding>]
[-Count <Int64>]
[-Offset <Int64>]
[-Raw]
[<CommonParameters>]
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.
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.
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.
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 �
Představuje počet bajtů, které se mají zahrnout do šestnáctkového výstupu.
Tento parametr byl představen v PowerShellu 6.2.
Typ: | Int64 |
Position: | Named |
Default value: | Int64.MaxValue |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
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í jazykové verze. Tato možnost byla přidána v PowerShellu 7.4. -
bigendianunicode
: Kóduje ve formátu UTF-16 pomocí pořadí velkých bajtů. -
bigendianutf32
: Kóduje ve formátu UTF-32 pomocí pořadí velkých bajtů. -
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.
Počínaje PowerShellem 7.4 můžete použít hodnotu Ansi
parametru Encoding a předat číselné ID pro znakovou stránku ANSI aktuální jazykové verze, aniž byste ji museli 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 .
Typ: | Encoding |
Přípustné hodnoty: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
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í.
Typ: | PSObject |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
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 tématu about_Quoting_Rules.
Typ: | String[] |
Aliasy: | PSPath, LP |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
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.
Typ: | Int64 |
Position: | Named |
Default value: | 0 |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
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.
Typ: | String[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
Tento parametr už nic nedělá. Zachovává se kvůli kompatibilitě skriptu.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Do této rutiny můžete zamísit řetězec.
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.
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
.
Zpětná vazba k produktu PowerShell
PowerShell je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: