Format-Hex
Отображает файл или другие входные данные в виде шестнадцатеричного значения.
Синтаксис
Format-Hex
[-Path] <string[]>
[-Count <long>]
[-Offset <long>]
[<CommonParameters>]
Format-Hex
-LiteralPath <string[]>
[-Count <long>]
[-Offset <long>]
[<CommonParameters>]
Format-Hex
-InputObject <psobject>
[-Encoding <Encoding>]
[-Count <long>]
[-Offset <long>]
[-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
использует параметр Path для указания имени файла в текущем каталоге File.t7f. Расширение файла .t7f встречается редко, но шестнадцатеричные выходные данные %PDF показывают, что это PDF-файл.
Параметры
-Count
Это число байтов, включаемых в шестнадцатеричные выходные данные.
Этот параметр появился в PowerShell 6.2.
Type: | Int64 |
Position: | Named |
Default value: | Int64.MaxValue |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Задает кодировку выходных данных. Это относится только к входным [string]
данным. Параметр не влияет на числовые типы. Значение по умолчанию — utf8NoBOM
.
Ниже приведены допустимые значения для этого параметра.
ascii
: использует кодировку для кодировки 7-разрядной кодировки ASCII.bigendianunicode
: кодирует в формате UTF-16 с использованием порядка байтов большого байта.oem
: использует кодировку по умолчанию для MS-DOS и консольных программ.unicode
: кодирует в формате UTF-16 с использованием порядка байтов с маленьким байтом.utf7
: кодирует в формате UTF-7.utf8
: кодирует в формате UTF-8.utf8BOM
: кодирует в формате UTF-8 с меткой порядка байтов (BOM)utf8NoBOM
: кодирует в формате UTF-8 без метки порядка байтов (BOM)utf32
: кодирует в формате UTF-32.
Начиная с PowerShell 6.2, параметр Encoding также разрешает числовые идентификаторы зарегистрированных кодовых страниц (например -Encoding 1251
, ) или строковые имена зарегистрированных кодовых страниц (например -Encoding "windows-1251"
, ). Дополнительные сведения см. в документации по .NET для Encoding.CodePage.
Type: | Encoding |
Accepted values: | ASCII, BigEndianUnicode, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Используется для входных данных конвейера. Входные данные конвейера поддерживают только определенные скалярные типы и [system.io.fileinfo]
экземпляры для конвейера из Get-ChildItem
.
Поддерживаемые скалярные типы:
[string]
,[char]
[byte]
,[sbyte]
[int16]
,[uint16]
,[short]
,[ushort]
[int]
,[uint]
,[int32]
,[uint32]
,[long]
,[ulong]
,[int64]
,[uint64]
[single]
,[float]
,[double]
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Указывает полный путь к файлу. Значение LiteralPath используется точно так же, как оно введено. Этот параметр не принимает подстановочные знаки. Чтобы указать несколько путей к файлам, разделите пути запятыми. Если параметр LiteralPath содержит escape-символы, заключите путь в одинарные кавычки. PowerShell не интерпретирует символы в одной строке в кавычках как escape-последовательности. Дополнительные сведения см. в разделе about_Quoting_Rules.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Offset
Это число байтов, которые пропускаются из шестнадцатеричных выходных данных.
Этот параметр появился в PowerShell 6.2.
Type: | Int64 |
Position: | Named |
Default value: | 0 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Указывает путь к файлам. Используйте точку (.
), чтобы указать текущее расположение. Подстановочный знак (*
) принимается и может использоваться для указания всех элементов в расположении. Если параметр Path содержит escape-символы, заключите путь в одинарные кавычки. Чтобы указать несколько путей к файлам, разделите пути запятыми.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Raw
Этот параметр больше не выполняет никаких действий. Он сохраняется для совместимости скриптов.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Вы можете передать строку в этот командлет.
Выходные данные
Этот командлет возвращает ByteCollection. Этот объект представляет коллекцию байтов. Он включает методы, преобразующие коллекцию байтов в строку, отформатированную как каждая строка выходных данных, возвращаемая Format-Hex
. Если указать параметр Path или LiteralPath , объект также будет содержать путь к файлу, который содержит каждый байт.
Примечания
Самый правый столбец выходных данных пытается отобразить байты в виде символов ASCII:
Как правило, каждый байт интерпретируется как кодовая точка Юникода, что означает следующее:
- Печатные символы ASCII всегда отображаются правильно
- Многобайтовые символы UTF-8 никогда не отображаются правильно
- Символы UTF-16 отображаются правильно, только если их байт высокого порядка —
NUL
.