Format-Hex
Menampilkan file atau input lain sebagai heksadesimal.
Sintaks
Path
Format-Hex
[-Path] <String[]>
[-Count <Int64>]
[-Offset <Int64>]
[<CommonParameters>]
LiteralPath
Format-Hex
-LiteralPath <String[]>
[-Count <Int64>]
[-Offset <Int64>]
[<CommonParameters>]
ByInputObject
Format-Hex
-InputObject <PSObject>
[-Encoding <Encoding>]
[-Count <Int64>]
[-Offset <Int64>]
[-Raw]
[<CommonParameters>]
Deskripsi
Cmdlet Format-Hex menampilkan file atau input lain sebagai nilai heksadesimal. Untuk menentukan offset karakter dari output, tambahkan angka di paling kiri baris ke angka di bagian atas kolom untuk karakter tersebut.
Cmdlet Format-Hex dapat membantu Anda menentukan tipe file file yang rusak atau file yang mungkin tidak memiliki ekstensi nama file. Anda dapat menjalankan cmdlet ini, lalu membaca output heksadesimal untuk mendapatkan informasi file.
Saat menggunakan Format-Hex pada file, cmdlet mengabaikan karakter baris baru dan mengembalikan seluruh konten file dalam satu string dengan karakter baris baru yang dipertahankan.
Contoh
Contoh 1: Dapatkan representasi heksadesimal dari string
Perintah ini mengembalikan nilai heksadesimal dari string.
'Hello World' | Format-Hex
Label: String (System.String) <2944BEC3>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 48 65 6C 6C 6F 20 57 6F 72 6C 64 Hello World
String Hello World dikirimkan alur ke cmdlet Format-Hex. Output heksadesimal dari Format-Hex menunjukkan nilai setiap karakter dalam string.
Contoh 2: Temukan jenis file dari output heksadesimal
Contoh ini menggunakan output heksadesimal untuk menentukan jenis file. Cmdlet menampilkan jalur lengkap file dan nilai heksadesimal.
Untuk menguji perintah berikut, buat salinan file PDF yang ada di komputer lokal Anda dan ganti nama file yang disalin menjadi File.t7f.
Format-Hex -Path .\File.t7f -Count 48
Label: C:\Test\File.t7f
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 25 50 44 46 2D 31 2E 35 0D 0A 25 B5 B5 B5 B5 0D %PDF-1.5..%????.
0000000000000010 0A 31 20 30 20 6F 62 6A 0D 0A 3C 3C 2F 54 79 70 .1 0 obj..<</Typ
0000000000000020 65 2F 43 61 74 61 6C 6F 67 2F 50 61 67 65 73 20 e/Catalog/Pages
Cmdlet Format-Hex menggunakan parameter Jalur untuk menentukan nama file di direktori saat ini, File.t7f. Ekstensi file .t7f jarang terjadi, tetapi output heksadesimal %PDF menunjukkan bahwa itu adalah file PDF. Dalam contoh ini, parameter Count digunakan untuk membatasi output ke 48 byte pertama file.
Contoh 3: Memformat array dari berbagai jenis data
Contoh ini menggunakan array jenis data yang berbeda untuk menyoroti cara Format-Hex menanganinya di Alur.
Ini akan melewati setiap objek melalui Alur dan memproses satu per satu. Namun, jika data numerik, dan objek yang berdekatan juga numerik, objek tersebut akan mengelompokkannya ke dalam satu blok output.
'Hello world!', 1, 1138, 'foo', 'bar', 0xdeadbeef, 1gb, 0b1101011100 , $true, $false |
Format-Hex
Label: String (System.String) <24F1F0A3>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 48 65 6C 6C 6F 20 77 6F 72 6C 64 21 Hello world!
Label: Int32 (System.Int32) <2EB933C5>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 01 00 00 00 72 04 00 00 � r�
Label: String (System.String) <4078B66C>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 66 6F 6F foo
Label: String (System.String) <51E4A317>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 62 61 72 bar
Label: Int32 (System.Int32) <5ADF167B>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 EF BE AD DE 00 00 00 40 5C 03 00 00 ï¾-Þ @\�
Label: Boolean (System.Boolean) <7D8C4C1D>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 01 00 00 00 00 00 00 00 �
Parameter
-Count
Ini menunjukkan jumlah byte yang akan disertakan dalam output hex.
Parameter ini diperkenalkan di PowerShell 6.2.
Properti parameter
| Jenis: | Int64 |
| Nilai default: | Int64.MaxValue |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Encoding
Menentukan pengodean string input. Ini hanya berlaku untuk input [string]. Parameter tidak berpengaruh pada jenis numerik. Nilai output selalu utf8NoBOM.
Nilai yang dapat diterima untuk parameter ini adalah sebagai berikut:
-
ascii: Menggunakan pengodean untuk set karakter ASCII (7-bit). -
ansi: Menggunakan pengodean untuk halaman kode ANSI budaya saat ini. Opsi ini ditambahkan di PowerShell 7.4. -
bigendianunicode: Mengenkripsi dalam format UTF-16 menggunakan urutan byte big-endian. -
bigendianutf32: Mengenkode dalam format UTF-32 menggunakan urutan byte big-endian. -
oem: Menggunakan pengkodean default untuk program MS-DOS dan program konsol. -
unicode: Mengode dalam format UTF-16 menggunakan urutan byte little-endian. -
utf7: Mengodekan dalam format UTF-7. -
utf8: Mengodekan dalam format UTF-8. -
utf8BOM: Mengodekan dalam format UTF-8 dengan Byte Order Mark (BOM) -
utf8NoBOM: Mengodekan dalam format UTF-8 tanpa Byte Order Mark (BOM) -
utf32: Mengodekan dalam format UTF-32.
Dimulai dengan PowerShell 6.2, parameter Pengodean
Dimulai dengan PowerShell 7.4, Anda dapat menggunakan nilai
Nota
UTF-7* tidak lagi disarankan untuk digunakan. Sejak PowerShell 7.1, sebuah peringatan akan ditulis jika Anda menentukan utf7 untuk parameter Pengodean .
Properti parameter
| Jenis: | Encoding |
| Nilai default: | UTF8NoBOM |
| Nilai yang diterima: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
ByInputObject
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-InputObject
Menentukan objek yang akan diformat. Masukkan variabel yang berisi objek atau ketik perintah atau ekspresi yang mendapatkan objek.
Hanya jenis skalar tertentu dan [System.IO.FileInfo] yang didukung.
Jenis skalar yang didukung adalah:
-
[string],[char] -
[byte],[sbyte] -
[int16],[uint16],[short],[ushort] -
[int], ,[uint][int32], ,[uint32], -
[long],[ulong],[int64],[uint64] -
[single], ,[float][double] [boolean]
Sebelum PowerShell 6.2, Format-Hex akan menangani input Alur dengan beberapa jenis input dengan mengelompokkan semua seperti objek bersama-sama. Sekarang, ia menangani setiap objek individu saat melewati Alur dan tidak akan mengelompokkan objek bersama-sama kecuali seperti objek yang berdekatan.
Properti parameter
| Jenis: | PSObject |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
ByInputObject
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-LiteralPath
Menentukan jalur lengkap ke file. Nilai LiteralPath digunakan persis seperti yang diketikkan. Parameter ini tidak menerima karakter kartubebas. Untuk menentukan beberapa jalur ke file, pisahkan jalur dengan koma. Jika parameter LiteralPath menyertakan karakter escape, sertakan jalur dalam tanda kutip tunggal. PowerShell tidak menginterpretasikan karakter apa pun dalam satu string yang dikutip sebagai urutan escape. Untuk informasi lebih lanjut, lihat about_Quoting_Rules.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | PSPath, LP |
Set parameter
LiteralPath
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Offset
Ini menunjukkan jumlah byte untuk dilewati dari menjadi bagian dari output hex.
Parameter ini diperkenalkan di PowerShell 6.2.
Properti parameter
| Jenis: | Int64 |
| Nilai default: | 0 |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Path
Menentukan jalur ke file. Gunakan titik (.) untuk menentukan lokasi saat ini. Karakter kartubebas (*) diterima dan dapat digunakan untuk menentukan semua item di lokasi. Jika parameter Jalur menyertakan karakter escape, sertakan jalur dalam tanda kutip tunggal. Untuk menentukan beberapa jalur ke file, pisahkan jalur dengan koma.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | True |
| DontShow: | False |
Set parameter
Path
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Raw
Parameter ini tidak lagi melakukan apa pun. Ini dipertahankan untuk kompatibilitas skrip.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
ByInputObject
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
Input
String
Anda dapat menyalurkan string ke cmdlet ini.
Output
ByteCollection
Cmdlet ini mengembalikan ByteCollection. Objek ini mewakili kumpulan byte. Ini termasuk metode yang mengonversi kumpulan byte menjadi string yang diformat seperti setiap baris output yang dikembalikan oleh Format-Hex. Output juga menyatakan jenis byte yang sedang diproses. Jika Anda menentukan parameter Path atau LiteralPath, objek berisi jalur file yang berisi setiap byte. Jika Anda meneruskan string, boolean, bilangan bulat, dll, itu akan diberi label dengan tepat.
Catatan
PowerShell menyertakan alias berikut untuk Format-Hex:
- Semua platform:
fhx
Kolom output paling kanan mencoba merender byte sebagai karakter ASCII:
Umumnya, setiap byte ditafsirkan sebagai titik kode Unicode, yang berarti bahwa:
- Karakter ASCII yang dapat dicetak selalu dirender dengan benar
- Karakter UTF-8 multi-byte tidak pernah dirender dengan benar
- Karakter UTF-16 dirender dengan benar hanya jika byte urutan tingginya terjadi
NUL.