Udostępnij za pośrednictwem


Format-Hex

Wyświetla plik lub inne dane wejściowe jako szesnastkowe.

Składnia

Format-Hex
      [-Path] <string[]>
      [<CommonParameters>]
Format-Hex
      -LiteralPath <string[]>
      [<CommonParameters>]
Format-Hex
      -InputObject <Object>
      [-Encoding <string>]
      [-Raw]
      [<CommonParameters>]

Opis

Polecenie Format-Hex cmdlet wyświetla plik lub inne dane wejściowe jako wartości szesnastkowe. Aby określić przesunięcie znaku z danych wyjściowych, dodaj liczbę z lewej strony wiersza do liczby w górnej części kolumny dla tego znaku.

Polecenie Format-Hex cmdlet może pomóc w ustaleniu typu pliku uszkodzonego pliku lub pliku, który może nie mieć rozszerzenia nazwy pliku. Możesz uruchomić to polecenie cmdlet, a następnie odczytać dane wyjściowe szesnastkowe, aby uzyskać informacje o pliku.

W przypadku użycia Format-Hex w pliku polecenie cmdlet ignoruje znaki nowego wiersza i zwraca całą zawartość pliku w jednym ciągu z zachowanymi znakami nowego wiersza.

Przykłady

Przykład 1. Pobieranie szesnastkowej reprezentacji ciągu

To polecenie zwraca wartości szesnastkowe ciągu.

'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

Ciąg Hello World jest wysyłany w dół potoku Format-Hex do polecenia cmdlet. Dane wyjściowe szesnastkowe z Format-Hex programu pokazują wartości każdego znaku w ciągu.

Przykład 2. Znajdowanie typu pliku z danych wyjściowych szesnastkowe

W tym przykładzie użyto danych wyjściowych szesnastkowe w celu określenia typu pliku. Polecenie cmdlet wyświetla pełną ścieżkę pliku i wartości szesnastkowe.

Aby przetestować następujące polecenie, utwórz kopię istniejącego pliku PDF na komputerze lokalnym i zmień nazwę skopiowanego pliku na 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

Polecenie Format-Hex cmdlet używa parametru Path, aby określić nazwę pliku w bieżącym katalogu . File.t7f Rozszerzenie .t7f pliku jest nietypowe, ale dane wyjściowe %PDF szesnastkowe pokazują, że jest to plik PDF.

Przykład 3. Wyświetlanie nieprzetworzonych danych wyjściowych szesnastkowe

Domyślnie Format-Hex wybiera kompaktowe dane wyjściowe typów danych liczbowych: sekwencje jednobajtowe lub dwubajtowe są używane, jeśli wartość jest wystarczająco mała. Parametr Raw dezaktywuje to zachowanie.

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  ............è...

Zwróć uwagę na różnicę w danych wyjściowych. Parametr Raw wyświetla liczby jako wartości 4-bajtowe, true dla ich typów Int32.

Parametry

-Encoding

Określa kodowanie danych wyjściowych. Dotyczy to tylko [string] danych wejściowych. Parametr nie ma wpływu na typy liczbowe. Domyślna wartość to ASCII.

Dopuszczalne wartości tego parametru są następujące:

  • Ascii Używa zestawu znaków ASCII (7-bitowego).
  • BigEndianUnicode Używa formatu UTF-16 z kolejnością bajtów big-endian.
  • Unicode Używa formatu UTF-16 z kolejnością bajtów little-endian.
  • UTF7 Używa protokołu UTF-7.
  • UTF8 Używa protokołu UTF-8.
  • UTF32 Używa formatu UTF-32 z kolejnością bajtów little-endian.

Znaki inne niż ASCII w danych wejściowych są danymi wyjściowymi jako znaki literału ? , co powoduje utratę informacji.

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

Określa obiekty, które mają być sformatowane. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty.

Obsługiwane są tylko niektóre typy skalarne i [system.io.fileinfo] .

Obsługiwane typy skalarne to:

  • [string]
  • [byte]
  • [int], [int32]
  • [long], [int64]
Type:Object
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

Określa pełną ścieżkę do pliku. Wartość LiterałuPath jest używana dokładnie tak, jak jest typowana. Ten parametr nie akceptuje symboli wieloznacznych. Aby określić wiele ścieżek do plików, rozdziel ścieżki przecinkami. Jeśli parametr LiteralPath zawiera znaki ucieczki, należy ująć ścieżkę w znaki pojedynczego cudzysłowu. Program PowerShell nie interpretuje żadnych znaków w jednym cytowanym ciągu jako sekwencjach ucieczki. Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Path

Określa ścieżkę do plików. Użyj kropki (.), aby określić bieżącą lokalizację. Symbol wieloznaczny (*) jest akceptowany i może służyć do określania wszystkich elementów w lokalizacji. Jeśli parametr Ścieżka zawiera znaki ucieczki, należy ująć ścieżkę w pojedynczy cudzysłów. Aby określić wiele ścieżek do plików, rozdziel ścieżki przecinkami.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:True

-Raw

Domyślnie Format-Hex wybiera kompaktowe dane wyjściowe typów danych liczbowych: sekwencje jednobajtowe lub dwubajtowe są używane, jeśli wartość jest wystarczająco mała. Parametr Raw dezaktywuje to zachowanie.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

String

Możesz przekazać ciąg do tego polecenia cmdlet.

Dane wyjściowe

ByteCollection

To polecenie cmdlet zwraca obiekt ByteCollection. Ten obiekt reprezentuje kolekcję bajtów. Zawiera metody, które konwertują kolekcję bajtów na ciąg sformatowany tak jak każdy wiersz danych wyjściowych zwracanych przez Format-Hex. Jeśli określisz parametr Path lub LiteralPath , obiekt zawiera również ścieżkę pliku zawierającego każdy bajt.

Uwagi

Program Windows PowerShell zawiera następujące aliasy dla programu Format-Hex:

  • fhx

Większość prawej kolumny danych wyjściowych próbuje renderować bajty jako znaki:

Ogólnie rzecz biorąc każdy bajt jest interpretowany jako punkt kodu Unicode, co oznacza, że:

  • Znaki ASCII z możliwością drukowania są zawsze poprawnie renderowane
  • Wiele bajtów UTF-8 znaków nigdy nie renderuje poprawnie
  • Znaki UTF-16 są renderowane poprawnie tylko wtedy, gdy ich bajt o wysokiej kolejności ma wartość NUL.