自己解凍プログラムを作る

[戻る]

あるとき, 自己解凍形式でプログラムを配布しなくてはならなくなりました. 実は私, GUI 形式の解凍 (展開) プログラムは嫌いなので入れてません. 拡張子に変な関連が付くからです. 展開は ZIP は Xp ならダブルクリックすればいいし, tar.gz は cygwin からコマンドラインで展開します. LHA に関しては LHA32を 愛用しています.

GUI なら簡単でしょうが, コマンドラインから自己解凍を作りたいと考え調べてみました. DOS の頃の記憶を辿ると LHA でも作れた筈ですが,

  1. まずは "lha a" で LZH ファイルを作る
  2. 続いて "lha s [1.で作った LZH ファイル]" と打つ
と出来そうなもんですが "Skipped hogehogehoge.exe : MS-DOS で扱えない名前のファイルです. "と 出てしまいます.

確か昔 DOS で作った LZH ファイルを UNIX で展開しようとすると文句を言われ, それを黙らせるオプションがあったから, 似たようなものがあるはずと思ったのですが なかなか見つかりません.

でも最終的にネットで得た知見を参考に以下のようにすればいいことが分かりました.

lha s -jp1 -x1 -gw3 [LZH ファイル]
個々のスイッチの意味はよく分かりません.

なお, 入れたのは随分昔なのでよく覚えてませんが, もしかして lha は何かから名前を変えたのかもしれません. 要は上述の LHA32 です.


2006.4