Compartir a través de


Format-Hex

Muestra un archivo u otra entrada como hexadecimal.

Syntax

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

Description

El Format-Hex cmdlet muestra un archivo u otra entrada como valores hexadecimales. Para determinar el desplazamiento de un carácter de la salida, agregue el número situado más a la izquierda de la fila al número situado en la parte superior de la columna para ese carácter.

El Format-Hex cmdlet puede ayudarle a determinar el tipo de archivo de un archivo dañado o un archivo que podría no tener una extensión de nombre de archivo. Puede ejecutar este cmdlet y, a continuación, leer la salida hexadecimal para obtener información de archivo.

Cuando se usa Format-Hex en un archivo, el cmdlet omite los caracteres de nueva línea y devuelve todo el contenido de un archivo en una cadena con los caracteres de nueva línea conservados.

Ejemplos

Ejemplo 1: Obtener la representación hexadecimal de una cadena

Este comando devuelve los valores hexadecimales de una cadena.

'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

La cadena Hola mundo se envía a la canalización al Format-Hex cmdlet . La salida hexadecimal de Format-Hex muestra los valores de cada carácter de la cadena.

Ejemplo 2: Buscar un tipo de archivo de la salida hexadecimal

En este ejemplo se usa la salida hexadecimal para determinar el tipo de archivo. El cmdlet muestra la ruta de acceso completa del archivo y los valores hexadecimales.

Para probar el siguiente comando, realice una copia de un archivo PDF existente en el equipo local y cambie el nombre del archivo copiado a 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

El Format-Hex cmdlet usa el parámetro Path para especificar un nombre de archivo en el directorio actual, File.t7f. La extensión .t7f de archivo es poco común, pero la salida %PDF hexadecimal muestra que es un archivo PDF.

Ejemplo 3: Mostrar salida hexadecimal sin formato

De forma predeterminada Format-Hex , opta por la salida compacta de tipos de datos numéricos: se usan secuencias de un solo byte o de doble byte si el valor es lo suficientemente pequeño. El parámetro Raw desactiva este comportamiento.

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 la diferencia en la salida. El parámetro Raw muestra los números como valores de 4 bytes, true a sus tipos Int32 .

Parámetros

-Encoding

Especifica la codificación de la salida. Esto solo se aplica a la [string] entrada. El parámetro no tiene ningún efecto en los tipos numéricos. El valor predeterminado es ASCII.

Los valores aceptables para este parámetro son los siguientes:

  • Ascii Usa el juego de caracteres ASCII (7 bits).
  • BigEndianUnicode Usa UTF-16 con el orden de bytes big-endian.
  • Unicode Usa UTF-16 con el orden de bytes little-endian.
  • UTF7 Usa UTF-7.
  • UTF8 Usa UTF-8.
  • UTF32 Usa UTF-32 con el orden de bytes little-endian.

Los caracteres no ASCII de la entrada se generan como caracteres literales ? , lo que da lugar a una pérdida de información.

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 los objetos a los que se dará formato. Especifique una variable que contenga los objetos, o escriba un comando o una expresión que obtenga los objetos.

Solo se admiten determinados tipos escalares y [system.io.fileinfo] .

Los tipos escalares admitidos son:

  • [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 la ruta de acceso completa a un archivo. El valor de LiteralPath se usa exactamente como se escribe. Este parámetro no acepta caracteres comodín. Para especificar varias rutas de acceso a los archivos, separe las rutas de acceso con una coma. Si el parámetro LiteralPath incluye caracteres de escape, incluya la ruta de acceso entre comillas simples. PowerShell no interpreta ningún carácter de una sola cadena entre comillas como secuencias de escape. Para obtener más información, 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 la ruta de acceso a los archivos. Use un punto (.) para especificar la ubicación actual. El carácter comodín (*) se acepta y se puede usar para especificar todos los elementos de una ubicación. Si el parámetro Path incluye caracteres de escape, incluya la ruta de acceso entre comillas simples. Para especificar varias rutas de acceso a los archivos, separe las rutas de acceso con una coma.

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

-Raw

De forma predeterminada Format-Hex , opta por la salida compacta de tipos de datos numéricos: se usan secuencias de un solo byte o de doble byte si el valor es lo suficientemente pequeño. El parámetro Raw desactiva este comportamiento.

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

Entradas

String

Puede canalizar una cadena a este cmdlet.

Salidas

ByteCollection

Este cmdlet devuelve un byteCollection. Este objeto representa una colección de bytes. Incluye métodos que convierten la colección de bytes en una cadena con formato similar a cada línea de salida devuelta por Format-Hex. Si especifica el parámetro Path o LiteralPath , el objeto también contiene la ruta de acceso del archivo que contiene cada byte.

Notas

Windows PowerShell incluye los siguientes alias para Format-Hex:

  • fhx

La columna de salida más derecha intenta representar los bytes como caracteres:

Por lo general, cada byte se interpreta como un punto de código Unicode, lo que significa que:

  • Los caracteres ASCII imprimibles siempre se representan correctamente
  • Los caracteres UTF-8 de varios bytes nunca se representan correctamente
  • Los caracteres UTF-16 se representan correctamente solo si su byte de orden alto se produce como NUL.