Поделиться через


Format-Hex

Отображает файл или другие входные данные как шестнадцатеричные.

Синтаксис

Path (по умолчанию)

Format-Hex
    [-Path] <string[]>
    [<CommonParameters>]

LiteralPath

Format-Hex
    -LiteralPath <string[]>
    [<CommonParameters>]

ByInputObject

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

Описание

Командлет Format-Hex отображает файл или другие входные данные в виде шестнадцатеричных значений. Чтобы определить смещение символа из выходных данных, добавьте число в самую левую часть строки в число в верхней части столбца для этого знака.

Командлет Format-Hex поможет определить тип файла поврежденного файла или файла, который может не иметь расширения имени файла. Этот командлет можно запустить, а затем прочитать шестнадцатеричные выходные данные, чтобы получить сведения о файле.

При использовании Format-Hex в файле командлет игнорирует символы новой строки и возвращает все содержимое файла в одной строке с сохраненными символами новой строки.

Примеры

Пример 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. Шестнадцатеричные выходные данные из Format-Hex отображают значения каждого символа в строке.

Пример 2. Поиск типа файла из шестнадцатеричных выходных данных

В этом примере шестнадцатеричные выходные данные используются для определения типа файла. Командлет отображает полный путь к файлу и шестнадцатеричные значения.

Чтобы проверить следующую команду, создайте копию существующего 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

Командлет Format-Hex использует параметр пути для указания имени файла в текущем каталоге File.t7f. Расширение файла .t7f редко, но шестнадцатеричные выходные данные %PDF показывают, что это PDF-файл.

Пример 3. Отображение необработанных шестнадцатеричных выходных данных

По умолчанию Format-Hex выбирает компактные выходные данные числовых типов данных: однобайтовые или двойные последовательности используются, если значение достаточно мало. Параметр необработанного деактивирует это поведение.

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

Обратите внимание на разницу в выходных данных. Параметр необработанных отображает числа в виде 4-байтовых значений, верных их типам Int32.

Параметры

-Encoding

Задает кодировку выходных данных. Это относится только к [string] входным данным. Параметр не влияет на числовые типы. Значение по умолчанию — ASCII.

Допустимые значения для этого параметра приведены следующим образом:

  • Ascii Использует набор символов ASCII (7-разрядный).
  • BigEndianUnicode использует UTF-16 с порядком байтов "старший байт первым".
  • Unicode использует UTF-16 с младшим порядком байтов.
  • UTF7 использует UTF-7.
  • UTF8 Использует UTF-8.
  • UTF32 использует UTF-32 с маленьким порядком байтов.

Символы, отличные от ASCII во входных данных, выходные в виде литеральных ? символов, что приводит к потере информации.

Свойства параметра

Тип:String
Default value:ASCII
Допустимые значения:ASCII, BigEndianUnicode, Unicode, UTF7, UTF8, UTF32
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

ByInputObject
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-InputObject

Указывает объекты, которые нужно отформатировать. Введите переменную, содержащую объекты или введите команду или выражение, которое получает объекты.

Поддерживаются только некоторые скалярные типа и [System.IO.FileInfo].

Поддерживаемые скалярные типы:

  • [string]
  • [byte]
  • [int], [int32]
  • [long], [int64]

Свойства параметра

Тип:Object
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

ByInputObject
Position:Named
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-LiteralPath

Указывает полный путь к файлу. Значение LiteralPath используется именно так, как оно введено. Этот параметр не принимает подстановочные знаки. Чтобы указать несколько путей к файлам, разделите пути с запятой. Если параметр LiteralPath включает escape-символы, заключите путь в одинарные кавычки. PowerShell не интерпретирует никакие символы в одной кавычки как escape-последовательности. Дополнительную информацию см. в разделе about_Quoting_Rules.

Свойства параметра

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:PSPath

Наборы параметров

LiteralPath
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Path

Указывает путь к файлам. Используйте точку (.), чтобы указать текущее расположение. Подстановочный знак (*) принимается и может использоваться для указания всех элементов в расположении. Если параметр Path включает escape-символы, заключите путь в одинарные кавычки. Чтобы указать несколько путей к файлам, разделите пути с запятой.

Свойства параметра

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

Path
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Raw

По умолчанию Format-Hex выбирает компактные выходные данные числовых типов данных: однобайтовые или двойные последовательности используются, если значение достаточно мало. Параметр необработанного деактивирует это поведение.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

ByInputObject
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

Входные данные

String

Вы можете передать строку в этот командлет.

Выходные данные

ByteCollection

Этот командлет возвращает ByteCollection. Этот объект представляет коллекцию байтов. Он включает методы, которые преобразуют коллекцию байтов в строку, отформатированную как каждая строка выходных данных, возвращаемая Format-Hex. Если указать параметр пути или LiteralPath, объект также содержит путь к файлу, который содержит каждый байт.

Примечания

Windows PowerShell включает следующие псевдонимы для Format-Hex:

  • fhx

Правый столбец выходных данных пытается отобразить байты в виде символов:

Как правило, каждый байт интерпретируется как кодовая точка Юникода, что означает следующее:

  • Отображаемые символы ASCII всегда отображаются правильно
  • Многобайтовые символы UTF-8 никогда не отображаются правильно
  • Символы UTF-16 отрисовываются правильно, только если их байты высокого порядка выполняются NUL.