Format-Hex
Zeigt eine Datei oder eine andere Eingabe als Hexadezimalzahl an.
Syntax
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>]
Beschreibung
Das Format-Hex
Cmdlet zeigt eine Datei oder eine andere Eingabe als Hexadezimalwerte an. Um den Offset eines Zeichens aus der Ausgabe zu ermitteln, fügen Sie die Zahl am linken Rand der Zeile am oberen Rand der Spalte für dieses Zeichen hinzu.
Mit dem Format-Hex
Cmdlet können Sie den Dateityp einer beschädigten Datei oder einer Datei ermitteln, die möglicherweise keine Dateinamenerweiterung aufweist. Sie können dieses Cmdlet ausführen und dann die Hexadezimalausgabe lesen, um Dateiinformationen abzurufen.
Bei verwendung Format-Hex
in einer Datei ignoriert das Cmdlet Neuelinezeichen und gibt den gesamten Inhalt einer Datei in einer Zeichenfolge zurück, wobei die neuen Zeichen erhalten bleiben.
Beispiele
Beispiel 1: Abrufen der Hexadezimaldarstellung einer Zeichenfolge
Dieser Befehl gibt die Hexadezimalwerte einer Zeichenfolge zurück.
'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
Die Zeichenfolge Hallo Welt wird an das Format-Hex
Cmdlet gesendet. Die Hexadezimalausgabe zeigt Format-Hex
die Werte jedes Zeichens in der Zeichenfolge an.
Beispiel 2: Suchen eines Dateityps aus hexadezimaler Ausgabe
In diesem Beispiel wird die Hexadezimalausgabe verwendet, um den Dateityp zu bestimmen. Das Cmdlet zeigt den vollständigen Pfad der Datei und die Hexadezimalwerte an.
Um den folgenden Befehl zu testen, erstellen Sie eine Kopie einer vorhandenen PDF-Datei auf Ihrem lokalen Computer, und benennen Sie die kopierte Datei in File.t7f
um.
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
Das Format-Hex
Cmdlet verwendet den Path-Parameter , um einen Dateinamen im aktuellen Verzeichnis " File.t7f" anzugeben. Die Dateierweiterung T7f ist ungewöhnlich, aber die hexadezimale Ausgabe %PDF zeigt, dass es sich um eine PDF-Datei handelt.
Parameter
-Count
Dies stellt die Anzahl der Bytes dar, die in die Hexausgabe einbezogen werden sollen.
Dieser Parameter wurde in PowerShell 6.2 eingeführt.
Type: | Int64 |
Position: | Named |
Default value: | Int64.MaxValue |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Gibt die Codierung der Ausgabe an. Dies gilt nur für [string]
Eingaben. Der Parameter hat keine Auswirkung auf numerische Typen. Standardwert: utf8NoBOM
.
Die zulässigen Werte für diesen Parameter sind wie folgt:
ascii
: Verwendet die Codierung für den ASCII-Zeichensatz (7-Bit).bigendianunicode
: Codiert im UTF-16-Format mithilfe der Groß-End-Bytereihenfolge.oem
: Verwendet die Standardcodierung für MS-DOS- und Konsolenprogramme.unicode
: Codiert im UTF-16-Format mithilfe der Klein-End-Bytereihenfolge.utf7
: Codiert im UTF-7-Format.utf8
: Codiert im UTF-8-Format.utf8BOM
: Codiert im UTF-8-Format mit Byte Order Mark (BOM)utf8NoBOM
: Codiert im UTF-8-Format ohne Byte Order Mark (BOM)utf32
: Codiert im UTF-32-Format.
Ab PowerShell 6.2 ermöglicht der Codierungsparameter auch numerische IDs registrierter Codeseiten (z. B. ) oder Zeichenfolgennamen registrierter Codeseiten (z-Encoding 1251
-Encoding "windows-1251"
. B. ). Weitere Informationen finden Sie in der .NET-Dokumentation für 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
Wird für die Pipelineeingabe verwendet. Die Pipelineeingabe unterstützt nur bestimmte Skalartypen und [system.io.fileinfo]
Instanzen für die Leitung von Get-ChildItem
.
Die unterstützten Skalartypen sind:
[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
Gibt den vollständigen Pfad zu einer Datei an. Der Wert von LiteralPath wird genau wie eingegeben verwendet. Dieser Parameter akzeptiert keine Wildcardzeichen. Um mehrere Pfade für Dateien anzugeben, trennen Sie die Pfade durch ein Komma. Wenn der LiteralPath-Parameter Escapezeichen enthält, schließen Sie den Pfad in einfache Anführungszeichen ein. PowerShell interpretiert keine Zeichen in einer einzelnen an zitierten Zeichenfolge als Escapesequenzen. Weitere Informationen finden Sie unter about_Quoting_Rules.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Offset
Dies stellt die Anzahl der Bytes dar, die nicht teil der Hexausgabe sind.
Dieser Parameter wurde in PowerShell 6.2 eingeführt.
Type: | Int64 |
Position: | Named |
Default value: | 0 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Gibt den Pfad zu Dateien an. Verwenden Sie einen Punkt (.
), um die aktuelle Position anzugeben. Das Wildcardzeichen (*
) wird akzeptiert und kann verwendet werden, um alle Elemente an einem Speicherort anzugeben. Wenn der Parameter Path Escapezeichen enthält, schließen Sie den Pfad in einfache Anführungszeichen ein. Um mehrere Pfade für Dateien anzugeben, trennen Sie die Pfade durch ein Komma.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Raw
Dieser Parameter führt nichts mehr aus. Sie wird für die Skriptkompatibilität aufbewahrt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können eine Zeichenfolge an dieses Cmdlet weiterleiten.
Ausgaben
Dieses Cmdlet gibt eine ByteCollection zurück. Dieses Objekt stellt eine Auflistung von Bytes dar. Es enthält Methoden, mit denen die Auflistung von Bytes in eine Zeichenfolge konvertiert wird, die wie jede Zeile der von ihnen zurückgegebenen Ausgabe formatiert ist Format-Hex
. Wenn Sie den Parameter Path oder LiteralPath angeben, enthält das Objekt auch den Pfad der Datei, die jedes Byte enthält.
Hinweise
Die rechtste Spalte der Ausgabe versucht, die Bytes als ASCII-Zeichen zu rendern:
Im Allgemeinen wird jedes Byte als Unicode-Codepunkt interpretiert, was bedeutet:
- Druckbare ASCII-Zeichen werden immer korrekt gerendert
- Multi-Byte UTF-8 Zeichen werden nie ordnungsgemäß gerendert
- UTF-16 Zeichen werden nur korrekt gerendert, wenn ihr Byte mit hoher Reihenfolge auftritt
NUL
.