Format-Hex
ファイルまたはその他の入力を 16 進数で表示します。
構文
Format-Hex
[-Path] <string[]>
[<CommonParameters>]
Format-Hex
-LiteralPath <string[]>
[<CommonParameters>]
Format-Hex
-InputObject <Object>
[-Encoding <string>]
[-Raw]
[<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
コマンドレットに送信されます。
Format-Hex
からの 16 進数の出力には、文字列内の各文字の値が表示されます。
例 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-Hex
コマンドレットは、Path パラメーターを使用して、現在のディレクトリ内のファイル名を指定 File.t7f
。 ファイル拡張子 .t7f
は一般的ではありませんが、16 進数の出力 %PDF
は PDF ファイルであることを示しています。
例 3: 生の 16 進数出力を表示する
既定では Format-Hex
数値データ型のコンパクトな出力を選択します。値が十分に小さい場合は、1 バイトまたは 2 バイトのシーケンスが使用されます。
Raw パラメーターは、この動作を非アクティブ化します。
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 ............è...
出力の違いに注目してください。 Raw パラメーターは、Int32 型に true の 4 バイト値として数値を表示します。
パラメーター
-Encoding
出力のエンコードを指定します。 これは、[string]
入力にのみ適用されます。 このパラメーターは数値型には影響しません。 既定値は ASCII
です。
このパラメーターに使用できる値は次のとおりです。
-
Ascii
ASCII (7 ビット) 文字セットを使用します。 -
BigEndianUnicode
ビッグ エンディアンバイト順で UTF-16 を使用します。 -
Unicode
リトル エンディアン バイト順で UTF-16 を使用します。 -
UTF7
UTF-7 を使用します。 -
UTF8
UTF-8 を使用します。 -
UTF32
は、リトル エンディアンバイト順で UTF-32 を使用します。
入力内の ASCII 以外の文字は、リテラル ?
文字として出力され、結果として情報が失われます。
型: | String |
指定可能な値: | ASCII, BigEndianUnicode, Unicode, UTF7, UTF8, UTF32 |
配置: | Named |
規定値: | ASCII |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputObject
書式設定するオブジェクトを指定します。 オブジェクトを含む変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
特定の スカラー 型と [System.IO.FileInfo]
のみがサポートされています。
サポートされているスカラー型は次のとおりです。
[string]
[byte]
-
[int]
、[int32]
-
[long]
、[int64]
型: | Object |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-LiteralPath
ファイルへの完全なパスを指定します。 LiteralPath の値は、型指定されたとおりに使用されます。 このパラメーターはワイルドカード文字を受け入れません。 ファイルへの複数のパスを指定するには、パスをコンマで区切ります。 LiteralPath パラメーターにエスケープ文字が含まれている場合は、パスを単一引用符で囲みます。 PowerShell では、単一引用符で囲まれた文字列内の文字はエスケープ シーケンスとして解釈されません。 詳細については、about_Quoting_Rulesを参照してください。
型: | String[] |
Aliases: | PSPath |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Path
ファイルへのパスを指定します。 現在の場所を指定するには、ドット (.
) を使用します。 ワイルドカード文字 (*
) は受け入れられ、場所内のすべての項目を指定するために使用できます。
Path パラメーターにエスケープ文字が含まれている場合は、パスを単一引用符で囲みます。 ファイルへの複数のパスを指定するには、パスをコンマで区切ります。
型: | String[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-Raw
既定では Format-Hex
数値データ型のコンパクトな出力を選択します。値が十分に小さい場合は、1 バイトまたは 2 バイトのシーケンスが使用されます。
Raw パラメーターは、この動作を非アクティブ化します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
このコマンドレットに文字列をパイプできます。
出力
このコマンドレットは、ByteCollectionを返します。 このオブジェクトは、バイトのコレクションを表します。 これには、バイトのコレクションを、Format-Hex
によって返される出力の各行のように書式設定された文字列に変換するメソッドが含まれています。
Path または LiteralPath パラメーター 指定した場合、オブジェクトには各バイトを含むファイルのパスも含まれます。
メモ
Windows PowerShell には、Format-Hex
の次のエイリアスが含まれています。
fhx
出力の右端の列は、バイトを文字としてレンダリングしようとします。
一般に、各バイトは Unicode コード ポイントとして解釈されます。これは、次のことを意味します。
- 印刷可能な ASCII 文字が常に正しくレンダリングされる
- マルチバイト UTF-8 文字が正しくレンダリングされない
- UTF-16 文字は、高次バイトが
NUL
場合にのみ正しくレンダリングされます。
関連リンク
PowerShell