LHA.exe と ZIP.exe の使い方。

はじめに

ダウンロードありがとうございます。
これは、unlha.dll & unzip.dll for WindowsCE に コマンドを送り、圧縮/解凍を実現するためのソフトです。

このソフトは単体では動作しません。 LHA.exe を使うためには unlha.dll、 ZIP.exe を使うためには unzip.dllがインストールされている 必要があります。

「コンソールがないのにどうやって使うんだ!」 と思われるでしょうが、ま、なんとかしてください (なんじゃそりゃ)。 ちなみにワタシは、 nScript と併用してます。

以下に、LHA.exe と ZIP.exe に送るべきコマンド文字列について、 説明しています。


コマンド

コマンドの書式は以下の通りです。

    [<command>] [[-<switch>[+|-|0|1|2]]...] <archive_file_name>[.LZH]
      [[<base_directory_name>\] [<path_name>|<wild_name>]...]]...

      command             : 命令
      switch              : スイッチ
      archive_file_name   : 書庫名
      base_directory_name : 基準ディレクトリ
      path_name           : パス (ファイル) 名
      wild_name           : ワイルドカード

path_name に半角スペースが含まれる場合は、
前後をダブルクォート " " で囲んでください。
(もちろん、半角スペースがないときに、" " で囲んでも
正しく認識されます)

   ex. "a \test.lzh "\My Documents\test.txt""


a: 書庫にファイルを追加
 
   ファイルを圧縮して書庫に格納します。2 番目の引数に出力先の
   ファイル名。3 番目には、基準ディレクトリを指定(必要時のみ)。
   4 番目以降に圧縮したいファイルを指定。
   ワイルドカードも中途半端に使えます。
   基準ディレクトリの詳細は、以下の基準ディレクトリについて
   を参考にしてください。
   
   ex.  -基準ディレクトリを使わない例-
        "a \test.lzh \test\*.*"
          → test.lzh という名前で、\test ディレクトリ以下のファイルを
                  圧縮する。
        "a \test2 \test\*.dll"
          → test2.lzh という名前で、\test ディレクトリの、拡張子が
             .dll のファイルを圧縮する。


e もしくは x : 書庫内のファイルを展開

   書庫を展開します。2 番目の引数に展開したい書庫名、3 番目の引数に
   解凍先のディレクトリを指定します。
   ただし、解凍先のディレクトリが存在しない場合、DLL はディレクトリを
   作ろうとせず、エラーとして終了してしまいます。
   よって、ソフト側であらかじめ作っておいてください。
   DLL 内部では、展開処理の前に、書庫ファイルの検査を行います。

   ex.  "e test.lzh \test\"
          → test.lzh という書庫を、\test フォルダ以下に展開


t: 書庫の完全性検査

   書庫が正しく展開可能かどうかをチェックします。
   lzh 書庫については ヘッダチェック、crc 比較などを行います。
   zip 書庫については、ヘッダチェックのみ行います。
   (それじゃあ完全性検査と言えないやんけ)

   ex.  "t \test.lzh"
          → test.lzh の完全性検査をします。


l: 書庫の内容の一覧出力

   書庫の中身の一覧を、出力バッファに出力します。
   フォーマットは以下の通り。

    CRC    TYPE   SIZE    RATIO       STAMP             NAME
  -------- ---- -------- ------ ------------------- ----------------------
  00000000 STOR        0 ****** 2002-03-06  7:06:38 test/test2/
  E3C740A7 DEFL    23444  32.5% 2002-03-03  9:21:12 test/test2/test2.txt
  17F811C2 DEFL    12079  29.3% 2002-03-03  9:20:52 test/test.txt
  -------- ---- -------- ------ ------------------- ----------------------
    Total          35523                     3files

   unlha.dll と unzip.dll とでは、TYPE に入る語句が異なります。

   LHA については、"lh0" "lh5" など、前後のハイフンを
   省略した形で表示します。

   ZIP については、
     STOR   - Store
     DEFL   - Deflate
     SRNK   - Shrunk
     RED1~4 - Reduce 1~4
     IMPL   - Implode

   を示しています。


q: サイレントモード

  このオプションを "a" や "e" などとあわせて指定すると、
    圧縮/展開の際に、状況表示ダイアログを出さずに処理を実行します。

    ex.  "eq \test.lzh"
           → ダイアログを出さずに、test.lzh を展開します。


f: 強制上書き

    解凍の際、ファイルを上書きしようとすると、それを確認するための
    ダイアログが表示されます( "q" オプションが指定されていても
    このダイアログは出ます)。選択肢は4つ。「はい」は上書き解凍、
    「いいえ」は上書きせずに次のファイルの処理継続。「すべてはい」は
    その後のすべてのファイルを上書き解凍、「スキップ」は上書きせず、
    その後の処理を一切せずに終了します。

  このオプションを "e" とあわせて指定すると、このダイアログを出さず、
    すべてが上書き解凍されます。

    ex.  "ef \test.lzh"
           → test.lzh を展開。既存のファイルは全て上書き。


o: 圧縮アルゴリズムの指定
    (0|5|6|7) - Unlha
    (0 〜 9)  - UnZip

  このオプションを "a" とあわせて指定すると、
    圧縮の際の圧縮アルゴリズムを指定できます。

  LHA:
    指定できるのは 0(無圧縮), 5(-lh5-), 6(-lh6-), 7(-lh7-)
    です。省略すると、-lh7- で圧縮されます。

  ZIP:
    0 から 9 までを指定できます。0 は無圧縮。
    1 は速度最優先・圧縮率最小、9 は圧縮率最優先・速度最遅 です。
    省略すると、6 で圧縮されます。

    ex.  "ao5 test.lzh test.txt"
           → test.txt を -lh5- 形式で圧縮します。

基準ディレクトリについて

  WindowsCE には、カレントディレクトリの概念がないため、全ての
パス指定を絶対ディレクトリで行うことになります。 
  そのため、圧縮/解凍のとき、基準ディレクトリという概念を使って、
相対パスの代替とします。
  基準ディレクトリを指定するときは、かならず最後を \ にしてください。
そうしないと、ファイルが指定されているものと誤認識します。


  たとえば、圧縮の場合、
    a \Dir1\Dir2\test.lzh \Dir1\ \Dir1\Dir2\test.txt
  と、基準ディレクトリを指定( \Dir1\ )したとき、Dir2 と、Dir2 以下の
  指定されたファイルが書庫に格納されます。

  仮に、これを
    a \Dir1\Dir2\test.lzh \Dir1\Dir2\test.txt
  と、基準ディレクトリを指定しなかった場合、Dir1 から書庫に
  格納されることになります。


  解凍の場合は、
    e "\Storage Card\test.lzh" \temp\
  と指定すると、test.lzh が \temp 以下に解凍されます。
  \temp\ が基準ディレクトリの指定にあたります。

上の文章は、 uema2 が書きました。あーつかれた。
ソースの著作権?んなもん知らんがな(やる気ないんかい)