Megosztás a következőn keresztül:


Format-Hex

Hexadecimálisként jeleníti meg a fájlt vagy más bemenetet.

Syntax

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

A Format-Hex parancsmag hexadecimális értékként jelenít meg egy fájlt vagy más bemenetet. Ha meg szeretné határozni egy karakter eltolását a kimenetből, adja hozzá a sor bal szélső számát a karakter oszlopának tetején lévő számhoz.

A Format-Hex parancsmag segíthet meghatározni egy sérült vagy esetleg nem fájlnévkiterjesztéssel rendelkező fájl fájltípusát. Futtassa ezt a parancsmagot, majd olvassa el a hexadecimális kimenetet a fájlinformációk lekéréséhez.

Ha Format-Hex használ egy fájlban, a parancsmag figyelmen kívül hagyja az új sor karaktereit, és egy fájl teljes tartalmát egy sztringben adja vissza, az új sor karaktereit megőrzve.

Példák

1. példa: Sztring hexadecimális ábrázolásának lekérése

Ez a parancs egy sztring hexadecimális értékeit adja vissza.

'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

A rendszer a Hello World sztringet küldi le a Format-Hex parancsmagba. A Format-Hex hexadecimális kimenete a sztring egyes karaktereinek értékeit jeleníti meg.

2. példa: Fájltípus keresése hexadecimális kimenetből

Ez a példa a hexadecimális kimenetet használja a fájltípus meghatározásához. A parancsmag megjeleníti a fájl teljes elérési útját és a hexadecimális értékeket.

A következő parancs teszteléséhez készítsen másolatot egy meglévő PDF-fájlról a helyi számítógépen, és nevezze át a másolt fájlt 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

A Format-Hex parancsmag a Path paraméterrel adja meg a fájlnevet az aktuális könyvtárban, File.t7f. A fájlkiterjesztés .t7f nem gyakori, de a hexadecimális kimenet %PDF azt mutatja, hogy pdf-fájl. Ebben a példában a Darabszám paraméter a fájl első 48 bájtjára korlátozza a kimenetet.

3. példa: Különböző adattípusok tömbjének formázása

Ez a példa különböző adattípusok tömbje segítségével emeli ki, hogy Format-Hex hogyan kezeli őket a folyamaton belül.

Az egyes objektumokat a folyamaton keresztül továbbítja, és egyenként dolgozza fel. Ha azonban numerikus adatokról van szó, és a szomszédos objektum is numerikus, azokat egyetlen kimeneti blokkba csoportosítja.

'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                         �

Paraméterek

-Count

Ez a hexa kimenetbe belefoglalandó bájtok számát jelöli.

Ez a paraméter a PowerShell 6.2-ben lett bevezetve.

Paramétertulajdonságok

Típus:Int64
Alapértelmezett érték:Int64.MaxValue
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Encoding

Megadja a bemeneti sztringek kódolását. Ez csak [string] bemenetre vonatkozik. A paraméter nincs hatással a numerikus típusokra. A kimeneti érték mindig utf8NoBOM.

A paraméter elfogadható értékei a következők:

  • ascii: Az ASCII (7 bites) karakterkészlet kódolását használja.
  • ansi: Az aktuális kultúra ANSI-kódlapjának kódolását használja. Ez a beállítás a PowerShell 7.4-ben lett hozzáadva.
  • bigendianunicode: Az UTF-16 formátumú kódolást a big-endian bájtsorrend alkalmazásával végzi.
  • bigendianutf32: UTF-32 formátumban kódol nagyvégű bájtsorrend használatával.
  • oem: Az alapértelmezett kódolást használja MS-DOS és konzolprogramokhoz.
  • unicode: Az UTF-16 formátumban kódol kis végű bájtsorrend használatával.
  • utf7: UTF-7 formátumban kódol.
  • utf8: UTF-8 formátumban kódol.
  • utf8BOM: UTF-8 formátumban kódolódik bájt sorrendi jel (BOM) használatával
  • utf8NoBOM: UTF-8 formátumban kódol byte order mark (BOM) nélkül
  • utf32: UTF-32 formátumban kódol.

A PowerShell 6.2-től kezdődően a Kódolás paraméter lehetővé teszi a regisztrált kódlapok (például -Encoding 1251) numerikus azonosítóit vagy a regisztrált kódlapok sztringneveit (például -Encoding "windows-1251"). További információt a Encoding.CodePage.NET-dokumentációjában talál.

A PowerShell 7.4-től kezdve a Ansi paraméter értékével anélkül adhat meg numerikus azonosítót az aktuális kultúra ANSI-kódlapjához, hogy manuálisan kellene megadnia.

Megjegyzés:

UTF-7* már nem ajánlott. PowerShell 7.1-től kezdve figyelmeztetés jelenik meg, ha utf7-et ad meg a kódolás paraméterhez.

Paramétertulajdonságok

Típus:Encoding
Alapértelmezett érték:UTF8NoBOM
Elfogadott értékek:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

ByInputObject
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-InputObject

Megadja a formázandó objektumokat. Adjon meg egy változót, amely tartalmazza az objektumokat, vagy írjon be egy parancsot vagy kifejezést, amely lekéri az objektumokat.

Csak bizonyos skaláris típusok és [System.IO.FileInfo] támogatottak.

A támogatott skaláris típusok a következők:

  • [string], [char]
  • [byte], [sbyte]
  • [int16], [uint16], [short], [ushort]
  • [int], [uint], [int32], [uint32]
  • [long], [ulong], [int64], [uint64]
  • \, \, \
  • [boolean]

A PowerShell 6.2 előtt a Format-Hex több bemeneti típussal rendelkező folyamatbemenetet kezelne úgy, hogy az összes objektumot egymáshoz hasonlóan csoportosítja. Most minden egyes objektumot kezel, miközben áthalad a folyamaton, és nem csoportosítja az objektumokat, kivéve, ha a hasonló objektumok szomszédosak.

Paramétertulajdonságok

Típus:PSObject
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

ByInputObject
Position:Named
Kötelező:True
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-LiteralPath

Megadja a fájl teljes elérési útját. A LiteralPath értéke pontosan a beíráskor használatos. Ez a paraméter nem fogad el helyettesítő karaktereket. Ha több elérési utat szeretne megadni a fájlokhoz, válassza el az elérési utakat vesszővel. Ha a LiteralPath paraméter tartalmaz feloldó karaktereket, az elérési utat egyetlen idézőjelbe kell foglalnia. A PowerShell egyetlen idézett sztringben lévő karaktereket nem értelmez menekülési sorozatként. További információk az about_Quoting_Rules oldalon találhatók: .

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:PSPath, LP

Paraméterkészletek

LiteralPath
Position:Named
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Offset

Ez a kihagyandó bájtok számát jelöli a hexa kimenet részeként.

Ez a paraméter a PowerShell 6.2-ben lett bevezetve.

Paramétertulajdonságok

Típus:Int64
Alapértelmezett érték:0
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Path

Megadja a fájlok elérési útját. Az aktuális hely megadásához használjon egy pont (.) értéket. A helyettesítő karakter (*) elfogadott, és a hely összes elemének megadására használható. Ha a Elérési út paraméter tartalmaz feloldó karaktereket, az elérési utat egyetlen idézőjelbe kell foglalnia. Ha több elérési utat szeretne megadni a fájlokhoz, válassza el az elérési utakat vesszővel.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

Path
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Raw

Ez a paraméter már nem végez semmit. A szkriptkompatibilitás érdekében megmarad.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

ByInputObject
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

String

Ehhez a parancsmaghoz karakterláncot irányíthat át.

Kimenetek

ByteCollection

Ez a parancsmag egy ByteCollectionad vissza. Ez az objektum bájtok gyűjteményét jelöli. Olyan metódusokat tartalmaz, amelyek a bájtok gyűjteményét a Format-Hexáltal visszaadott kimenetsorhoz hasonlóan formázott sztringgé alakítják át. A kimenet azt is jelzi, hogy a feldolgozandó bájtok típusa. Ha megadja a Path vagy LiteralPath paramétert, az objektum tartalmazza az egyes bájtokat tartalmazó fájl elérési útját. Ha egy sztringet, logikai értéket, egész számot stb. ad át, az megfelelően lesz megjelölve.

Jegyzetek

A PowerShell a következő aliasokat tartalmazza Format-Hex:

  • Minden platform:
    • fhx

A kimenet jobb szélső oszlopa ASCII-karakterekként próbálja megjeleníteni a bájtokat:

Általában minden bájt Unicode kódpontként van értelmezve, ami azt jelenti, hogy:

  • A nyomtatható ASCII-karakterek mindig megfelelően jelennek meg
  • A több bájtos UTF-8 karakterek soha nem jelennek meg megfelelően
  • Az UTF-16 karakterek csak akkor jelennek meg helyesen, ha a nagy sorrendű bájtjuk NUL.