Compartir vía


Format-Hex

Muestra un archivo u otra entrada como hexadecimal.

Sintaxis

Path (valor predeterminado)

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

LiteralPath

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

ByInputObject

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

Description

El cmdlet Format-Hex 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 cmdlet Format-Hex 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.

Al usar 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 Hello World se envía a la canalización al cmdlet Format-Hex. 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 cmdlet Format-Hex usa el parámetro path de para especificar un nombre de archivo en el directorio actual, File.t7f. La extensión de archivo .t7f es poco común, pero la salida hexadecimal %PDF 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 de int32.

Parámetros

-Encoding

Especifica la codificación de la salida. Esto solo se aplica a [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.

Propiedades de parámetro

Tipo:String
Valor predeterminado:ASCII
Valores aceptados:ASCII, BigEndianUnicode, Unicode, UTF7, UTF8, UTF32
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ByInputObject
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-InputObject

Especifica los objetos a los que se va a dar formato. Escriba una variable que contenga los objetos o escriba un comando o expresión que obtenga los objetos.

Solo se admiten determinados tipos de escalares y [System.IO.FileInfo].

Los tipos escalares admitidos son:

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

Propiedades de parámetro

Tipo:Object
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ByInputObject
Posición:Named
Obligatorio:True
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-LiteralPath

Especifica la ruta de acceso completa a un archivo. El valor de LiteralPath se usa tal como está escrito. 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 sobre_las_normas_de_citación.

Propiedades de parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:PSPath

Conjuntos de parámetros

LiteralPath
Posición:Named
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Path

Especifica la ruta de acceso a los archivos. Use un punto (.) para especificar la ubicación actual. Se acepta el carácter comodín (*) 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.

Propiedades de parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:True
DontShow:False

Conjuntos de parámetros

Path
Posición:0
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

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

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ByInputObject
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

String

Puede canalizar una cadena a este cmdlet.

Salidas

ByteCollection

Este cmdlet devuelve un byteCollection de. 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 de 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 solo se representan correctamente si su byte de orden alto se produce NUL.