Format-Hex
Exibe um arquivo ou outra entrada como hexadecimal.
Syntax
Format-Hex
[-Path] <string[]>
[<CommonParameters>]
Format-Hex
-LiteralPath <string[]>
[<CommonParameters>]
Format-Hex
-InputObject <Object>
[-Encoding <string>]
[-Raw]
[<CommonParameters>]
Description
O Format-Hex
cmdlet exibe um arquivo ou outra entrada como valores hexadecimais. Para determinar o deslocamento de um caractere da saída, adicione o número na extremidade mais à esquerda da linha ao número na parte superior da coluna desse caractere.
O Format-Hex
cmdlet pode ajudá-lo a determinar o tipo de arquivo de um arquivo corrompido ou um arquivo que pode não ter uma extensão de nome de arquivo. Você pode executar esse cmdlet e ler a saída hexadecimal para obter informações sobre o arquivo.
Ao usar Format-Hex
em um arquivo, o cmdlet ignora caracteres de nova linha e retorna todo o conteúdo de um arquivo em uma cadeia de caracteres com os caracteres de nova linha preservados.
Exemplos
Exemplo 1: Obter a representação hexadecimal de uma cadeia de caracteres
Esse comando retorna os valores hexadecimais de uma cadeia de caracteres.
'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
A cadeia de caracteres Hello World é enviada pelo pipeline para o Format-Hex
cmdlet. A saída hexadecimal de mostra os valores de cada caractere na cadeia de Format-Hex
caracteres.
Exemplo 2: Localizar um tipo de arquivo a partir de saída hexadecimal
Este exemplo usa a saída hexadecimal para determinar o tipo de arquivo. O cmdlet exibe o caminho completo do arquivo e os valores hexadecimais.
Para testar o comando a seguir, faça uma cópia de um arquivo PDF existente no computador local e renomeie o arquivo copiado para 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
O Format-Hex
cmdlet usa o parâmetro Path para especificar um nome de arquivo no diretório atual, File.t7f
. A extensão .t7f
do arquivo é incomum, mas a saída %PDF
hexadecimal mostra que é um arquivo PDF.
Exemplo 3: Exibir saída hexadecimal bruta
Por padrão Format-Hex
, opta pela saída compacta de tipos de dados numéricos: sequências de byte único ou byte duplo são usadas se o valor for pequeno o suficiente. O parâmetro Raw desativa esse comportamento.
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 ............è...
Observe a diferença na saída. O parâmetro Raw exibe os números como valores de 4 bytes, fiéis aos seus tipos Int32 .
Parâmetros
-Encoding
Especifica a codificação da saída. Isso só se aplica à [string]
entrada. O parâmetro não tem efeito sobre os tipos numéricos. O valor padrão é ASCII
.
Os valores aceitáveis para esse parâmetro são os seguintes:
Ascii
Usa o conjunto de caracteres ASCII (7 bits).BigEndianUnicode
Usa UTF-16 com a ordem de bytes big-endian.Unicode
Usa UTF-16 com a ordem de bytes little-endian.UTF7
Usa UTF-7.UTF8
Usa UTF-8.UTF32
Usa UTF-32 com a ordem de bytes little-endian.
Caracteres não-ASCII na entrada são emitidos como caracteres literais ?
, resultando em uma perda de informações.
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
Especifica os objetos a serem formatados. Insira uma variável que contém os objetos ou digite um comando ou uma expressão que obtém os objetos.
Apenas certos tipos escalares e [system.io.fileinfo]
são suportados.
Os tipos escalares suportados são:
[string]
[byte]
[int]
,[int32]
[long]
,[int64]
Type: | Object |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Especifica o caminho completo para um arquivo. O valor de LiteralPath é usado exatamente como é digitado. Esse parâmetro não aceita caracteres curinga. Para especificar vários caminhos para arquivos, separe os caminhos com uma vírgula. Se o parâmetro LiteralPath incluir caracteres de escape, coloque o caminho entre aspas simples. O PowerShell não interpreta nenhum caractere em uma única cadeia de caracteres entre aspas como sequências de escape. Para obter mais informações, consulte about_Quoting_Rules.
Type: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Especifica o caminho para os arquivos. Use um ponto (.
) para especificar o local atual. O caractere curinga (*
) é aceito e pode ser usado para especificar todos os itens em um local. Se o parâmetro Path incluir caracteres de escape, coloque o caminho entre aspas simples. Para especificar vários caminhos para arquivos, separe os caminhos com uma vírgula.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Raw
Por padrão Format-Hex
, opta pela saída compacta de tipos de dados numéricos: sequências de byte único ou byte duplo são usadas se o valor for pequeno o suficiente. O parâmetro Raw desativa esse comportamento.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Você pode canalizar uma cadeia de caracteres para esse cmdlet.
Saídas
Esse cmdlet retorna um ByteCollection. Este objeto representa uma coleção de bytes. Ele inclui métodos que convertem a coleção de bytes em uma cadeia de caracteres formatada como cada linha de saída retornada pelo Format-Hex
. Se você especificar o parâmetro Path ou LiteralPath , o objeto também conterá o caminho do arquivo que contém cada byte.
Observações
O Windows PowerShell inclui os seguintes aliases para Format-Hex
:
fhx
A coluna mais à direita da saída tenta renderizar os bytes como caracteres:
Geralmente, cada byte é interpretado como um ponto de código Unicode, o que significa que:
- Os caracteres ASCII imprimíveis são sempre renderizados corretamente
- Caracteres UTF-8 de vários bytes nunca são renderizados corretamente
- Os caracteres UTF-16 são renderizados corretamente somente se o byte de ordem alta for
NUL
.