BINCUT ファイルからバイナリデータを切り出す

書法

BINCUT [filename]* [option]*

SHELLMODE

@記述、!記述、^記述

詳細

ファイルからバイナリモードで指定した領域のデータを出力する。
領域の指定は、二種類ある。

位置での指定(-A)

領域の先頭と領域の末尾をファイルの先頭からの位置で指定する。 先頭を省略するとファイルの先頭、末尾を省略するとファイルの末尾を指定。 複数個続けて記述できる。

サイズでの指定(-B)

領域の先頭と領域のサイズで指定する。 先頭を省略するとファイルの先頭、末尾を省略するとファイルの末尾を指定。 複数個続けて記述できる。

領域指定(-A、-B)は、任意の個数だけ行うことができる。領域の順に連結して出力する。
位置やサイズを指定する数値は10進数、16進数で指定する。デフォルトは10進数だが、 10進基数指定(-D)、16進基数指定(-H)で切りかえることが出来る。
基数指定は現れた順番で有効になり、以降の領域指定に影響する。 これによって、領域指定の10進数、16進数指定の混在が可能になっている。
また、数値の先頭に「&」をつけると10進数、「$」を付けると16進数として扱う。これは、 基数指定と全く無関係である。

コマンドラインで複数のファイルを指定すると、すべてのファイルから同一の領域を切り出し、連結して出力する。 同一形式のファイルから固定領域を切り出してテーブルになるようなファイルを作成する際に用いると良い。

入力ファイルに対応した、それぞれ別のファイルを出力することが出来る(-E)。
全てのファイルから同一の領域が切り出され、-Edirnameで指定したディレクトリへ、入力ファイルと同一の名前で出力する。 同形式のデータの処理に使うと良い。 入力ファイルに同一の名前のファイルがある場合は、出力ファイルの上書きをしてしまうために、この方法はうまく行かない。

OPTION

-A{[n1],[n2];}*
アドレスによる領域指定。n1 からn2 までのアドレス。n1 を省略すると先頭から、n2 を省略すると末尾まで n2は領域の最後のアドレスであることに注意すること。(次の領域の先頭ではない)
-B{[n1],[n2];}*
サイズによる領域指定。n1 からn2 バイト。n1 を省略すると先頭から、n2 を省略すると末尾まで
-D
現在の基数指定を10進数に切りかえる
-Edirname
入力ファイル毎に同名のファイルを指定のディレクトリへ出力する
-H
現在の基数指定を16進数に切りかえる
-Ofilename
出力先を指定のファイルに切り替える。-Eが指定されている場合は無意味

用例

  1. カレントディレクトリの*.DATの先頭100バイトを集めて出力
    CAT *.DAT|BINCUT !! -B,100; -OARC.DAT
  2. SRC.BINの指定領域から取り出す。
    BINCUT SRC.BIN -A10,15; -H -B10,10 -OARC.DAT

    この例では、-Aで、10進の、10バイト目から15バイト目までの16バイトを指定。 さらに、その後に16進の10バイト目(10進で16)から16進の10バイト(10進で16)を指定。
    同じ指定を次のようにも書ける。

    BINCUT SRC.BIN -A&10,&15; -B$10,$10 -OARC.DAT
  3. カレントディレクトリの*.DATの100バイト目以降をSRC\ディレクトリに同名のファイルで格納。
    CAT *.DAT|BINCUT !! -ESRC -A100,;

バージョン

Ver 1.00初版