Aracılığıyla paylaş


Format-Hex

Bir dosyayı veya başka bir girişi onaltılık olarak görüntüler.

Syntax

Format-Hex
      [-Path] <String[]>
      [-Count <Int64>]
      [-Offset <Int64>]
      [<CommonParameters>]
Format-Hex
      -LiteralPath <String[]>
      [-Count <Int64>]
      [-Offset <Int64>]
      [<CommonParameters>]
Format-Hex
      -InputObject <PSObject>
      [-Encoding <Encoding>]
      [-Count <Int64>]
      [-Offset <Int64>]
      [-Raw]
      [<CommonParameters>]

Description

Format-Hex Cmdlet bir dosyayı veya başka bir girişi onaltılık değerler olarak görüntüler. Bir karakterin çıkıştan uzaklığını belirlemek için, satırın en solundaki sayıyı sütunun en üstündeki sayıya ekleyin.

Cmdlet bozuk Format-Hex bir dosyanın veya dosya adı uzantısına sahip olmayan bir dosyanın dosya türünü belirlemenize yardımcı olabilir. Bu cmdlet'i çalıştırabilir ve ardından dosya bilgilerini almak için onaltılık çıkışı okuyabilirsiniz.

Bir dosyada kullanırken Format-Hex , cmdlet yeni satır karakterlerini yoksayar ve yeni satır karakterlerinin korunduğu bir dizede bir dosyanın tüm içeriğini döndürür.

Örnekler

Örnek 1: Dizenin onaltılık gösterimini alma

Bu komut bir dizenin onaltılık değerlerini döndürür.

'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

Merhaba Dünya dizesi işlem hattına cmdlet'ine Format-Hex gönderilir. onaltılık çıkış Format-Hex dizedeki her karakterin değerlerini gösterir.

Örnek 2: Onaltılık çıktıdan bir dosya türü bulma

Bu örnek, dosya türünü belirlemek için onaltılık çıkışı kullanır. Cmdlet dosyanın tam yolunu ve onaltılık değerleri görüntüler.

Aşağıdaki komutu test etmek için, yerel bilgisayarınızda var olan bir PDF dosyasının kopyasını alın ve kopyalanan dosyayı olarak File.t7fyeniden adlandırın.

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'iFormat-Hex, geçerli dizinde File.t7fbir dosya adı belirtmek için Path parametresini kullanır. Dosya uzantısı .t7f yaygın değildir, ancak onaltılık çıktı %PDF bunun bir PDF dosyası olduğunu gösterir. Bu örnekte, çıkışı dosyanın ilk 48 bayt ile sınırlamak için Count parametresi kullanılır.

Örnek 3: Farklı veri türlerinden oluşan bir diziyi biçimlendirme

Bu örnekte, işlem hattında bunların nasıl Format-Hex işlendiğini vurgulamak için farklı veri türlerinden oluşan bir dizi kullanılır.

Her nesneyi İşlem Hattı üzerinden geçirir ve tek tek işler. Ancak, sayısal verilerse ve bitişik nesne de sayısalsa, bunları tek bir çıkış bloğu halinde gruplandırır.

'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                         �

Parametreler

-Count

Bu, onaltılık çıktıya eklenecek bayt sayısını temsil eder.

Bu parametre PowerShell 6.2'de kullanıma sunulmuştur.

Type:Int64
Position:Named
Default value:Int64.MaxValue
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encoding

Giriş dizelerinin kodlamasını belirtir. Bu yalnızca giriş için [string] geçerlidir. parametresinin sayısal türler üzerinde hiçbir etkisi yoktur. Çıkış değeri her zaman utf8NoBOMşeklindedir.

Bu parametre için kabul edilebilir değerler şunlardır:

  • ascii: ASCII (7 bit) karakter kümesi için kodlamayı kullanır.
  • bigendianunicode: Big-endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.
  • bigendianutf32: Big-endian bayt sırasını kullanarak UTF-32 biçiminde kodlar.
  • oem: MS-DOS ve konsol programları için varsayılan kodlamayı kullanır.
  • unicode: Little-endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.
  • utf7: UTF-7 biçiminde kodlar.
  • utf8: UTF-8 biçiminde kodlar.
  • utf8BOM: Bayt Sipariş İşareti (BOM) ile UTF-8 biçiminde kodlar
  • utf8NoBOM: Bayt Sipariş İşareti (BOM) olmadan UTF-8 biçiminde kodlar
  • utf32: UTF-32 biçiminde kodlar.

PowerShell 6.2'den başlayarak Kodlama parametresi, kayıtlı kod sayfalarının (gibi) sayısal kimliklerine veya kayıtlı kod sayfalarının (gibi-Encoding 1251-Encoding "windows-1251") dize adlarına da izin verir. Daha fazla bilgi için Encoding.CodePage için .NET belgelerine bakın.

Not

UTF-7* uygulamasının artık kullanılması önerilmez. PowerShell 7.1'den itibaren Kodlama parametresini belirtirseniz utf7 bir uyarı yazılır.

Type:Encoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Biçimlendirilecek nesneleri belirtir. Nesneleri içeren bir değişken girin veya nesneleri alan bir komut veya ifade yazın.

Yalnızca belirli skaler türler ve [system.io.fileinfo] desteklenir.

Desteklenen skaler türler şunlardır:

  • [string], [char]
  • [byte], [sbyte]
  • [int16], [uint16], [short], [ushort]
  • [int], [uint], [int32], [uint32],
  • [long], [ulong], [int64], [uint64]
  • [single], [float], [double]
  • [boolean]

PowerShell 6.2'nin öncesinde, Format-Hex tüm benzer nesneleri birlikte gruplandırarak birden çok giriş türüne sahip bir İşlem Hattı girişini işleyecekti. Şimdi, İşlem Hattı'nda geçen her nesneyi tek tek işler ve nesneler bitişik olmadığı sürece nesneleri birlikte gruplandırmaz.

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

-LiteralPath

Dosyanın tam yolunu belirtir. LiteralPath değeri tam olarak yazıldığı gibi kullanılır. Bu parametre joker karakterleri kabul etmez. Dosyaların birden çok yolunu belirtmek için yolları virgülle ayırın. LiteralPath parametresi kaçış karakterleri içeriyorsa, yolu tek tırnak içine alın. PowerShell, tek tırnak içine alınmış bir dizedeki karakterleri kaçış dizileri olarak yorumlamaz. Daha fazla bilgi için bkz. about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Offset

Bu, onaltılık çıkışın parçası olmaktan atlanmasının atlandığı bayt sayısını temsil eder.

Bu parametre PowerShell 6.2'de kullanıma sunulmuştur.

Type:Int64
Position:Named
Default value:0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Dosyaların yolunu belirtir. Geçerli konumu belirtmek için nokta (.) kullanın. Joker karakter (*) kabul edilir ve bir konumdaki tüm öğeleri belirtmek için kullanılabilir. Path parametresi kaçış karakterleri içeriyorsa, yolu tek tırnak içine alın. Dosyaların birden çok yolunu belirtmek için yolları virgülle ayırın.

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

-Raw

Bu parametre artık hiçbir şey yapmaz. Betik uyumluluğu için korunur.

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

Girişler

String

Bir dizeyi bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

ByteCollection

Bu cmdlet bir ByteCollection döndürür. Bu nesne bayt koleksiyonunu temsil eder. Bayt koleksiyonunu tarafından Format-Hexdöndürülen her çıkış satırı gibi biçimlendirilmiş bir dizeye dönüştüren yöntemleri içerir. Çıkış, işlenen bayt türlerini de belirtir. Path veya LiteralPath parametresini belirtirseniz, nesne her bayt içeren dosyanın yolunu içerir. Dize, boole, tamsayı vb. geçirirseniz, uygun şekilde etiketlenir.

Notlar

Çıkışın en sağdaki sütunu baytları ASCII karakterleri olarak işlemeye çalışır:

Genellikle, her bayt bir Unicode kod noktası olarak yorumlanır, yani:

  • Yazdırılabilir ASCII karakterleri her zaman doğru işlenir
  • Çok baytlı UTF-8 karakterleri hiçbir zaman doğru işlenmez
  • UTF-16 karakterleri yalnızca yüksek sıralı baytları olduğunda NULdoğru işlenir.