次の方法で共有


Format-Hex

ファイルまたはその他の入力を 16 進数で表示します。

構文

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

説明

コマンドレットは Format-Hex 、ファイルまたはその他の入力を 16 進数の値として表示します。 出力からの文字のオフセットを確認するには、行の左端にある数値を、その文字の列の先頭にある数値に追加します。

コマンドレットは Format-Hex 、破損したファイルのファイルの種類、またはファイル名拡張子がない可能性があるファイルを特定するのに役立ちます。 このコマンドレットを実行し、16 進数の出力を読み取ってファイル情報を取得できます。

ファイルで を使用 Format-Hex する場合、コマンドレットは改行文字を無視し、改行文字が保持された 1 つの文字列でファイルの内容全体を返します。

例 1: 文字列の 16 進数表現を取得する

このコマンドは、文字列の 16 進数の値を返します。

'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

Hello World文字列は、パイプラインから コマンドレットにFormat-Hex送信されます。 からの 16 進数の出力 Format-Hex は、文字列内の各文字の値を示しています。

例 2: 16 進数出力からファイルの種類を検索する

この例では、16 進数の出力を使用してファイルの種類を決定します。 コマンドレットは、ファイルの完全パスと 16 進値を表示します。

次のコマンドをテストするには、ローカル コンピューター上の既存の PDF ファイルのコピーを作成し、コピーしたファイルの名前を 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

コマンドレットは Format-HexPath パラメーターを使用して、現在のディレクトリ File.t7f のファイル名を指定します。 ファイル拡張子 .t7f は一般的ではありませんが、16 進数の出力 %PDF は PDF ファイルであることを示しています。

パラメーター

-Encoding

出力のエンコードを指定します。 これは入力にのみ適用されます [string] 。 パラメーターは数値型には影響しません。 既定値は ASCII です

このパラメーターに使用できる値は次のとおりです。

  • Ascii ASCII (7 ビット) 文字セットを使用します。
  • BigEndianUnicode ビッグ エンディアンバイト順で UTF-16 を使用します。
  • Unicode リトル エンディアンバイト順で UTF-16 を使用します。
  • UTF7 UTF-7 を使用します。
  • UTF8 UTF-8 を使用します。
  • UTF32 リトル エンディアンのバイト順で UTF-32 を使用します。

入力内の ASCII 以外の文字はリテラル ? 文字として出力され、結果として情報が失われます。

Type:String
Accepted values:ASCII, BigEndianUnicode, Unicode, UTF7, UTF8, UTF32
Position:Named
Default value:ASCII
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

パイプライン入力に使用されます。 パイプライン入力では、 からのGet-ChildItemパイプ処理の インスタンスと [system.io.fileinfo] インスタンスのみが[string]サポートされます。

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

-LiteralPath

ファイルへの完全なパスを指定します。 LiteralPath の値は、型指定されたとおりに使用されます。 このパラメーターはワイルドカード文字を使用できません。 ファイルへの複数のパスを指定するには、パスをコンマで区切ります。 LiteralPath パラメーターにエスケープ文字が含まれている場合は、パスを単一引用符で囲みます。 PowerShell では、単一引用符で囲まれた文字列内の文字はエスケープ シーケンスとして解釈されません。 詳細については、「 about_Quoting_Rules」を参照してください。

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

-Path

ファイルへのパスを指定します。 現在の場所を指定するには、ドット (.) を使用します。 ワイルドカード文字 (*) は受け入れられ、場所内のすべての項目を指定するために使用できます。 Path パラメーターにエスケープ文字が含まれている場合は、パスを単一引用符で囲みます。 ファイルへの複数のパスを指定するには、パスをコンマで区切ります。

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

入力

String

このコマンドレットに文字列をパイプできます。

出力

ByteCollection

このコマンドレットは ByteCollection を返します。 このオブジェクトは、バイトのコレクションを表します。 これには、 によって返される出力の各行のように書式設定された文字列にバイトのコレクションを変換するメソッドが Format-Hex含まれています。 Path または LiteralPath パラメーターを指定した場合、オブジェクトには各バイトを含むファイルのパスも含まれます。

メモ

出力の右端の列は、バイトを文字としてレンダリングしようとします。

一般に、各バイトは Unicode コード ポイントとして解釈されます。つまり、次のことを意味します。

  • 印刷可能な ASCII 文字は常に正しくレンダリングされます
  • マルチバイト UTF-8 文字が正しくレンダリングされない
  • UTF-16 文字は、高次バイトが である場合にのみ正しくレンダリングされます NUL