ハードなソフトの話

アクセスカウンタ

zoom RSS PowerShell でファイルの先頭を16進ダンプ

<<   作成日時 : 2016/01/19 22:03   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

UnicodeテキストファイルのBOMとか、JPEGファイルのヘッダとか、ちょっとだけ、ファイルの先頭を見たい時がある。

Windows 7までは、debug コマンドが使えたので何とかなった。

しかし、Windows 8以降はdebugコマンドが使えない。PowerShell でなんとすることにした。

たとえば、ABC.TXTというファイルの先頭の8バイトを16進ダンプしたい場合、次のようにする。

echo “abc” > ABC.TXT # ファイルを作成

gc .\ABC.TXT -TotalCount 4 -Encoding byte | %{write-host -NoNewline  (“ {0:x2}” -f $_)}

結果は次のようになる。 

ff fe 61 00

“ff fe”はUTF-16LEのBOM、”61 0” は ”A"という感じで、UTF-16LEのテキストであることがわかる。

PowerShellを細かく解説する:

1. ファイルからデータを読み取る

gc .\ABC.TXT -TotalCount 4 -Encoding Byte

先頭から全部で8個のデータをバイト単位で出力する。このコマンドだけ実行すると、以下のようになる

255
254
97
0

10進数で表示されるが、16進数に直すと、255=ff, 254=fe, 97=62…となる

2. 16進数に変換する

“ {0:x2}” -f 255

16進数に変換する。このコマンドだけ実行すると、次のようになる。

ff

3. 「1.」と[2.」の結果を1行にする

説明の都合上、「1.」の結果を配列で表して、「2.」のコマンドに接続する

@(255,254,97,0) | %{ write-host -NoNewline ( “ {0:x2}” -f $_ )}

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
PowerShell でファイルの先頭を16進ダンプ ハードなソフトの話/BIGLOBEウェブリブログ
文字サイズ:       閉じる