Condividi tramite


Format-Hex

Visualizza un file o un altro input come esadecimale.

Sintassi

Path (Impostazione predefinita)

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

LiteralPath

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

ByInputObject

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

Descrizione

Il cmdlet Format-Hex visualizza un file o un altro input come valori esadecimali. Per determinare l'offset di un carattere dall'output, aggiungere il numero all'estrema sinistra della riga al numero nella parte superiore della colonna per tale carattere.

Il cmdlet Format-Hex consente di determinare il tipo di file di un file danneggiato o un file che potrebbe non avere un'estensione del nome file. È possibile eseguire questo cmdlet e quindi leggere l'output esadecimale per ottenere informazioni sul file.

Quando si usa Format-Hex in un file, il cmdlet ignora i caratteri di nuova riga e restituisce l'intero contenuto di un file in una stringa con i caratteri di nuova riga mantenuti.

Esempio

Esempio 1: Ottenere la rappresentazione esadecimale di una stringa

Questo comando restituisce i valori esadecimali di una stringa.

'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 stringa Hello World viene inviata alla pipeline al cmdlet Format-Hex. L'output esadecimale di Format-Hex mostra i valori di ogni carattere nella stringa.

Esempio 2: Trovare un tipo di file dall'output esadecimale

In questo esempio viene usato l'output esadecimale per determinare il tipo di file. Il cmdlet visualizza il percorso completo del file e i valori esadecimali.

Per testare il comando seguente, creare una copia di un file PDF esistente nel computer locale e rinominare il file copiato in 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

Il cmdlet Format-Hex usa il parametro Path per specificare un nome file nella directory corrente File.t7f. L'estensione di file .t7f non è comune, ma l'output esadecimale %PDF mostra che si tratta di un file PDF.

Esempio 3: Visualizzare l'output esadecimale non elaborato

Per impostazione predefinita, Format-Hex opta per l'output compatto dei tipi di dati numerici: le sequenze a byte singolo o doppio byte vengono usate se il valore è sufficientemente piccolo. Il parametro non elaborato disattiva questo 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  ............è...

Si noti la differenza nell'output. Il parametro Raw visualizza i numeri come valori a 4 byte, true per i relativi tipi di Int32.

Parametri

-Encoding

Specifica la codifica dell'output. Questo vale solo per [string] input. Il parametro non ha alcun effetto sui tipi numerici. Il valore predefinito è ASCII.

I valori accettabili per questo parametro sono i seguenti:

  • Ascii usa il set di caratteri ASCII (a 7 bit).
  • BigEndianUnicode usa UTF-16 con l'ordine dei byte "big-endian".
  • Unicode usa UTF-16 con l'ordine dei byte little-endian.
  • UTF7 usa UTF-7.
  • UTF8 usa UTF-8.
  • UTF32 utilizza UTF-32 con l'ordine dei byte in formato little-endian.

I caratteri non ASCII nell'input vengono restituiti come valori letterali ? caratteri con conseguente perdita di informazioni.

Proprietà dei parametri

Tipo:String
Valore predefinito:ASCII
Valori accettati:ASCII, BigEndianUnicode, Unicode, UTF7, UTF8, UTF32
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByInputObject
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-InputObject

Specifica gli oggetti da formattare. Immettere una variabile contenente gli oggetti o digitare un comando o un'espressione che ottiene gli oggetti .

Sono supportati solo determinati tipi di scalari e [System.IO.FileInfo] scalari.

I tipi scalari supportati sono:

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

Proprietà dei parametri

Tipo:Object
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByInputObject
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-LiteralPath

Specifica il percorso completo di un file. Il valore di LiteralPath viene utilizzato esattamente come viene digitato. Questo parametro non accetta caratteri jolly. Per specificare più percorsi per i file, separare i percorsi con una virgola. Se il parametro LiteralPath include caratteri di escape, racchiudere il percorso tra virgolette singole. PowerShell non interpreta i caratteri in una singola stringa tra virgolette come sequenze di escape. Per altre informazioni, vedere about_Quoting_Rules.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:PSPath

Set di parametri

LiteralPath
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Path

Specifica il percorso dei file. Usare un punto (.) per specificare la posizione corrente. Il carattere jolly (*) viene accettato e può essere usato per specificare tutti gli elementi in una posizione. Se il parametro Percorso include caratteri di escape, racchiudere il percorso tra virgolette singole. Per specificare più percorsi per i file, separare i percorsi con una virgola.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:True
DontShow:False

Set di parametri

Path
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Raw

Per impostazione predefinita, Format-Hex opta per l'output compatto dei tipi di dati numerici: le sequenze a byte singolo o doppio byte vengono usate se il valore è sufficientemente piccolo. Il parametro non elaborato disattiva questo comportamento.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByInputObject
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

String

È possibile inviare tramite pipe una stringa a questo cmdlet.

Output

ByteCollection

Questo cmdlet restituisce un ByteCollection. Questo oggetto rappresenta una raccolta di byte. Include metodi che convertono la raccolta di byte in una stringa formattata come ogni riga di output restituita da Format-Hex. Se si specifica il parametro Path o LiteralPath, l'oggetto contiene anche il percorso del file che contiene ogni byte.

Note

Windows PowerShell include gli alias seguenti per Format-Hex:

  • fhx

La colonna di output più a destra tenta di eseguire il rendering dei byte come caratteri:

In genere, ogni byte viene interpretato come punto di codice Unicode, il che significa che:

  • Il rendering dei caratteri ASCII stampabili viene sempre eseguito correttamente
  • Il rendering dei caratteri UTF-8 a più byte non viene mai eseguito correttamente
  • I caratteri UTF-16 vengono visualizzati correttamente solo se si verifica un byte di ordine elevato NUL.