load: (name Ice.exe) (type ice ice) decode: (cmd d (arc) (arc-.ice sn)) encode1: (cmd e (list) (arc.ice))
encode1 で cmd e (list) (arc+.ice) と書きたいのだけど、
そうすると、??? filename.ext.ice と表示されてエンコードできない。
filename は2文字でもダメなのでロングファイル名がダメなのではなく、
拡張子が二つあるのが許されないのかな ?
だから、復元されたファイルは拡張子なしになります。
load: (name imp.exe) (type imp Algorithm1_lv1 Algorithm1_lv2 Algorithm1_lv3 Algorithm2 multimedia store best%(solid%)) decode: (cmd e (arc)) encode: (if (method 1) (cmd a -1 -m1 -r (arc.imp) (list\*))) (if (method 2) (cmd a -1 -m2 -r (arc.imp) (list\*))) (if (method 3) (cmd a -1 -m3 -r (arc.imp) (list\*))) (if (method 4) (cmd a -2 -r (arc.imp) (list\*))) (if (method 5) (cmd a -1 -mm -r (arc.imp) (list\*))) (if (method 6) (cmd a -0 -r (arc.imp) (list\*))) (if (method 7) (cmd a -1 -m3 -s4 -r (arc.imp) (list\*)))
Algorithm 2 はドキュメントやビットマップの圧縮に優れていますが、
やや遅く、Algorithm 1 がデフォルトのようです。
SFX はドキュメントに記述なし。GUI 版だとできるからあると思ってたんだけど。
マルチボリュームもできるようですが、
復元時に別のコマンドを指定しないといけないようなので、
ここでは書かないことにします。
-r オプションを忘れてました。(2003.06.25)
今までのだとサブディレクトリがたぶん圧縮できてないです。
UnImp32.dll 用。Noah 本体が対応するまでこれ使ってください。 部分解凍があまりうまくない+書庫内表示でサブディレクトリのファイルが取得できない。 0.05 くらいから API の名前やコマンドが変わったらしいので注意。
load: (name UnImp32.dll) decode: (cmd x -a -r (arc) (dir) *.*) check: decode1: (cmd x -a -r -c0 -y (arc) (dir) (list))
http://www.technelysium.com.au/
DLL: http://www.hyperbeat.org/
load: (name Icomp.exe) (type Is3 NoComp Low *Normal Best all) decode: (cmd (arc) -d -i) encode: (if (method 1) (cmd (list) (arc.is3) -sn)) (if (method 2) (cmd (list) (arc.is3) -sl)) (if (method 3) (cmd (list) (arc.is3))) (if (method 4) (cmd (list) (arc.is3) -sm)) (if (method 5) (cmd *.* (arc.is3) -i))
InstallShield 3 用の拡張子 z のファイルを作成します。 拡張子 z は TAR でも使われるため、is3 としています。 ロングファイルネームはショートファイルネームに自動的に変更されます。 all というメソッドでは圧縮したいファイルがあるフォルダ内のファイルを、 サブディレクトリも含めてすべて圧縮するので使うときは注意が必要です。 複数ファイルを圧縮するときはワイルドカードを使わないとできないため。
load: (name i5comp.exe us) decode: (cmd e -r (arc)) decode1: (cmd e -r -o (arc) (list)) list: (scan "" 1 "" 1 47 l -r -o (arc))
InstallShield 5 で使用される cab ファイルを展開します。
setup.exe と一緒に Cab32.dll で操作できない拡張子 cab のファイルがあったら、
それまず間違いなく InstallShield の cab ファイルと見ていいです。
InstallShield 6 で使用される cab ファイルを操作するときは、
i6comp.exe を使います。オプションはまったく同じなので、
load: 部分で i5comp.exe を i6comp.exe に書き換えれば動作すると思います。
いちいち拡張子を書き換えて Noah で処理させるくらいなら
WISE-UNWISER (http://niyari.hypermart.net/)
Xacrett (http://www.kmonos.net/)
ISCAB などを使ったほうがスマートでしょう。
load: (name Jar32.exe) (type jar fast *normal better best recovery_record multivolume360 multivolume720 multivolume1200 multivolume1440) decode: (cmd x -jyc (arc)) encode: (if (method 1) (cmd a -m1 (arc.j) (list\*.*))) (if (method 2) (cmd a -m2 (arc.j) (list\*.*))) (if (method 3) (cmd a -m3 (arc.j) (list\*.*))) (if (method 4) (cmd a -m4 (arc.j) (list\*.*))) (if (method 5) (cmd a -m2 -hk (arc.j) (list\*.*))) (if (method 6) (cmd a -m2 -v360 -jyv (arc.j) (list\*.*))) (if (method 7) (cmd a -m2 -v720 -jyv (arc.j) (list\*.*))) (if (method 8) (cmd a -m2 -v1200 -jyv (arc.j) (list\*.*))) (if (method 9) (cmd a -m2 -v1440 -jyv (arc.j) (list\*.*)))
ドキュメントに
"-m4" is not recommended for archives that may be modified in future.
との記述があるので、
-m4 オプション (best ってやつ) は使用しないほうがいいかも。
1 KB = 1000 Bytes で計算します。
360, 720, 1200, 1440 のみでマルチボリューム書庫の作成ができる。
マルチボリュームの拡張子は j, j01, j02, ... , j99, 100, ... , 990
http://www.arjsoftware.com/
load:
(name Jack32.dll)
(type jak *ask 1.44MB)
check:
decode:
(cmd -c (arc) (dir))
decode1:
(cmd -c (arc) (dir))
encode1:
(if (method 1) (exec
(let S (input " 分割サイズを指定。%( KB 単位で、1 KB = 1024 Bytes%) "))
(cmd -r -m0 -v:%S (list) (arc d))))
(if (method 2) (cmd -r -m0 -v:1423 (list) (arc d)))
sfxd:
(if (method 1) (exec
(let S (input " 分割サイズを指定。%( KB 単位で、1 KB = 1024 Bytes%) "))
(cmd -r -m1 -v:%S (list) (arc d))))
(if (method 2) (cmd -r -m1 -v:1423 (list) (arc d)))
ask だと、分割時に自分でサイズを決められます。 Noah が 3.14 より新しくないとだめです。 指定方法はキロバイト単位で、1 KB = 1024 Bytes です。 SFX を作成すると約 28 KB 増加します。
load: (name Jam.com) (type jam jam) encode1: (cmd (list) (arc.jam))
load: (name Unjam.com) decode: (cmd (arc) (arc-.jam sn))
拡張子が二つあるファイル名は受け付けてくれないようなので、
やむを得ずこういう形に。復元されるファイルは拡張子なし。
DLL へのコマンドの送り方がわからないため、作ってみた。
なぞじゃむの jam ファイルとは無関係。←なつかしー。
Jam32.dll を使う b2e です。
load: (name Jam32.dll) (type jam normal) encode1: (cmd (list) (arc+.jam))
load: (name Unjam32.dll) decode: (cmd (arc) (arc-.jam ln))
http://www.valley.ne.jp/~hirosoft/
load: (name Jarcs.exe) (type Jarcs *SIXPACK LZHUF JUNRLE JUNRLE-2 JSW003 JSW004A Analitic solid) decode: (cmd e (arc)) encode: (if (method 1) (cmd a -c0 (arc.jar) (list\*))) (if (method 2) (cmd a -c1 (arc.jar) (list\*))) (if (method 3) (cmd a -c2 (arc.jar) (list\*))) (if (method 4) (cmd a -c3 (arc.jar) (list\*))) (if (method 5) (cmd a -c4 (arc.jar) (list\*))) (if (method 6) (cmd a -c5 (arc.jar) (list\*))) (if (method 7) (cmd a -a (arc.jar) (list\*))) (if (method 8) (cmd a -s -c0 (arc.jar) (list\*)))
拡張子 jar は zip だと認識されるようで、
Noah.ini で Kill=Z としないと復元できない。
圧縮メソッドによりファイルサイズはだいぶ変わってくる。
ビットマップで実験したところ
SIPACK < LZHUF < JSC003 < JUNRLE-2 < JUNRLE < JSW004A の順。
SFX を作成できるはずなんだけど、作成しようとすると、
I couldn't be p'd off to implement this yet
といわれてしまう。まだこれは使えないってこと ?
load: (name jcalg1_test.exe us) (type JCALG1 fast *best) decode: (let d (dir)) (let f (arc-.jcalg1 n)) (cmd d (arc) %d%f) encode1: (if (method 1) (cmd c1 (list) (arc+.jcalg1))) (if (method 2) (cmd c9 (list) (arc+.jcalg1)))
圧縮はそんなに速くはないです。 圧縮率のほうも時間の割には低いです。 見てのとおり、ロングファイルネーム OK です。 最近のバージョンでは実行ファイルの名前が、 jcalg1_demo.exe から jcalg1_test.exe に変わりました。
http://www.collakesoftware.com/
load: (name Jrc.exe us) (type Jrc store solid *normal) encode: (if (method 1) (cmd -N -v (arc.jrc) (list))) (if (method 2) (cmd -c -v (arc.jrc) (list))) (if (method 3) (cmd -v (arc.jrc) (list))) sfx: (xcmd copy /b SELFEX + (arc) (arc.exe))
load: (name Jrce.exe) decode: (cmd (arc))
SFX 作成時は SELFEX のところを、
SELFEX があるところのフルパスに変更してください。
ロングファイルネーム不可です。
(list sn) にすると、
ロングファイルネームのファイルだけを圧縮しようとするため。
圧縮、解凍は速いですが、圧縮率のほうは低いです。
load: (name kboom11.exe us) (type Kboom Kboom) decode: (cmd (arc) (arc-.kbo sn) /d /n) encode1: (xcmd ren (list) _file.tmp) (cmd _file.tmp (arc.kbo) /c /n) (xcmd ren _file.tmp (list))
圧縮のときにうまくファイル名を送ることができないので、 一度名前を変更後、圧縮しています。 KBOOM は圧縮もとのファイル名を記憶してくれないので、こういうことが可能です。
load: (name larc.exe) (type larc larc) decode: (cmd e (arc)) encode: (cmd a (arc.lzs) (list\*))
作成されたアーカイブファイルは Unlha32.dll で操作できる。 その理由は開発者が同じだから ? 圧縮形式は "lz5" と表示される。
load: (name lgha.exe) (type lgha copy *ASC HSC) decode: (cmd x -- (arc) (dir)) encode: (if (method 1) (cmd a -0 -d -r -- (arc.ha) (list\*.*))) (if (method 2) (cmd a -1 -d -r -- (arc.ha) (list\*.*))) (if (method 3) (cmd a -2 -d -r -- (arc.ha) (list\*.*))) sfx: (cmd s (arc))
ASC とか HSC ってなんだろ。 ドキュメントでは try all methods って書いてあっただけだし。 アーカイブにはファイル名がすべて大文字で格納されます。
ha.exe を使うときは以下の b2e でいけます。
load: (name ha.exe) (type ha copy *ASC HSC) decode: (cmd x (arc) (dir)) encode: (if (method 1) (cmd a0dr (arc.ha) (list\*))) (if (method 2) (cmd a1dr (arc.ha) (list\*))) (if (method 3) (cmd a2dr (arc.ha) (list\*)))
ha.exe で圧縮したファイルは lgha.exe で展開可能。
http://www.geocities.com/SiliconValley/Lab/6606/
HAL さんが展開先指定可能、ロングファイルネーム対応な HA.exe を作成されてます。 互換性は保たれたままなので、実際に使うときはそちらを使ったほうが便利です。 FrontPage - HAL's Lab@AAACafe.Pukiwiki から Download -> HAexe**.zip をダウンロード。 b2e は ha.exe と同じで大丈夫。
load: (name Lhark.exe) (type Lharc%(lzh%) store *lh5 lh7) decode: (cmd e (arc)) encode: (if (method 1) (cmd a (arc.lzh) -a -l -c0 -tob (list\*))) (if (method 2) (cmd a (arc.lzh) -a -l -c5 -tob (list\*))) (if (method 3) (cmd a (arc.lzh) -a -l -c7 -tob (list\*))) sfx: (cmd s (arc))
LZH です。 Unlha32.dll との違いといえばパスワードを掛けることができることと、 作成した SFX にアイコンがないことくらい。
load: (name Limit.exe) (type Limit store *normal fast maximum) decode: (cmd e -p (arc.lim)) encode: (if (method 1) (cmd a -whs -s -m0 (arc.lim) (list\* s))) (if (method 2) (cmd a -whs -s -m1 (arc.lim) (list\* s))) (if (method 3) (cmd a -whs -s -ms (arc.lim) (list\* s))) (if (method 4) (cmd a -whs -s -mx (arc.lim) (list\* s)))
load: (name lz.exe us) (type lz lz) decode: (cmd d (arc) (arc-.lz sn)) encode1: (cmd e (list sn) (arc.lz))
ドキュメントらしきものによると、 LZSS のソースをもとに改良を加えたようなことが書いてあるんだけど、 まるで違うものになっているっぽい。
load: (name Lza32.exe) (type LZA No-compress *Maximum-compression multi_volume) decode: (cmd (arc) (dir) /x) encode: (if (method 1) (cmd (arc.lza) (list\*.*) /a /c0 /r)) (if (method 2) (cmd (arc.lza) (list\*.*) /a /c1 /r)) (if (method 3) (cmd (arc.lza) (list\*.*) /a /c1 /r /span /ds:1457664)) sfxd: (if (method 1) (cmd (arc.exe) (list\*.*) /sfx stub32.exe /c0 /r)) (if (method 2) (cmd (arc.exe) (list\*.*) /sfx stub32.exe /c1 /r)) (if (method 3) (cmd (arc.exe) (list\*.*) /sfx stub32.exe /c1 /span /ds:1457664 /r))
圧縮率は高め。 速度も決して遅くはない。 SFX を作成するときは、 stub32.exe は圧縮したいファイルがあるフォルダに置いてください。 stub16.exe でもいいですけど。 パスが通ったフォルダでは駄目みたいです。 b2e を書き換えてフルパス指定にしてしまえば、 そんなことを考えなくて済みます。 ロングファイルネームを扱えます。 マルチボリュームがいい感じです。 バイト指定できるので、フロッピーディスクきっちりのサイズに分割できます。 SFX を作成しても先頭のファイルサイズがスタブ分だけ大きくなることはありません。 ただ、b2e が悪いのか、分割されたファイルはルートフォルダにないと駄目です。 拡張子は lza, 1, 2, 3, ... 数字の大きいファイルが半端な大きさになります。
http://website.lineone.net/~african_chief/
load: (name Lzap.exe us) (use UnLzap.exe) (type lzap lzap) decode: (xcmd UnLzap.exe (arc) (arc-.zap n)) encode1: (cmd (list) (arc+.zap))
拡張子不明。 ZAP らしいです。
上書き確認しないので注意が必要です。
load: (name lzds21.exe) (type lzds2 fast *best) decode: (cmd -d (arc) (arc-.lzds2)) encode1: (if (method 1) (cmd -s1 -m1 (list) (arc+.lzds2))) (if (method 2) (cmd -s1024 -m5 (list) (arc+.lzds2)))
Fast LZ compressor #2
だそうです。
バイナリファイルに対しては今ひとつですが、テキストファイルの圧縮に強いです。
また、解凍速度が非常に速いです。
見てのとおりロングファイルネームに対応しています。
load: (name lzk.exe us) (type lzk lzk) decode: (cmd x (arc) (arc-.lzk n)) encode1: (cmd a (arc.lzk) (list s))
FAST! Single-file compression tool.
とのこと。
実際圧縮・解凍ともにかなり高速です。
ロングファイルネーム不可です。
おそらく US モードでないと何も表示されません。
作者は 15 歳らしい。
http://www.nlo-one.narod.ru/
load: (name lzop.exe) (type lzop 1_fastest 2 3 4 5 6 7 8 9_best) decode: (cmd -x -v (arc)) encode: (if (method 1) (cmd -1 -v (list))) (if (method 2) (cmd -2 -v (list))) (if (method 3) (cmd -3 -v (list))) (if (method 4) (cmd -4 -v (list))) (if (method 5) (cmd -5 -v (list))) (if (method 6) (cmd -6 -v (list))) (if (method 7) (cmd -7 -v (list))) (if (method 8) (cmd -8 -v (list))) (if (method 9) (cmd -9 -v (list)))
読み取り専用のファイルを圧縮すると、
圧縮されたファイルも同じ属性になるようです。
隠しファイルは同じ属性にならなかった。
処理がとても速い。
TAR を高速圧縮するもので、
TAR + LZOP で拡張子 tar.lzo あるいは tzo と言うものも、
ドキュメントに書いてあります。
-2 から -6 までは今のところ違いがないそうです。
UPX と同じ人が作成しているようです。
http://www.oberhumer.com/opensource/lzop/
load: (name lzss.exe us) (type lzss lzss) decode: (cmd d (arc) (arc-.lzss ln)) encode1: (cmd c (list) (arc+.lzss))
拡張子不明。 ロングファイルネームは大丈夫。 ファイルによっては 99 % まで圧縮して止まってしまうことがあります。 フォントファイルではそうなった。
load: (name mar.exe) (type mar lh0 GenericHuffman *AdaptiveHuffman Arithmatic) decode: (cmd x (arc)) encode: (if (method 1) (cmd a (arc.mar) (list\*) -e:-lh0-)) (if (method 2) (cmd a (arc.mar) (list\*) -e:-hf0-)) (if (method 3) (cmd a (arc.mar) (list\*) -e:-ah0-)) (if (method 4) (cmd a (arc.mar) (list\*) -e:-ari-))
拡張子 mar は Microsoft Access レポート ショートカットファイルらしい。 拡張子指定をしないと拡張子なしのファイルが出来上がる。
load: (name Mdcd.exe) (type mdcd mdcd) decode: (cmd d (arc)) encode: (cmd c (list\*.*) (arc.md))
圧縮率は低くなく、処理速度は非常に速い。 けっこういい感じです。
load: (name mpc.exe) (type mpc mp3) encode: (cmd (arc.mp3) (list\*.*))
load: (name pdc.exe) decode: (cmd (arc))
普通の環境下ではおそらくランタイムエラーを起こします。 ランタイムエラーが起こらないようにするためには、CPU のクロック周波数が 200 MHz 以下のマシンで実行するか、パッチを当てる必要があります。 パッチを当てる作業については ランタイムエラー 200 が発生する を参考にしてみてください。 サブディレクトリも圧縮したりすることはできないようです。 圧縮率はけっこう高いと思います。 速度もおそらく速いでしょう。
load: (name msxie.com) (type msxie single all_files) decode: (cmd e (arc)) encode: (if (method 1) (cmd a (arc.xie) (list))) (if (method 2) (cmd a (arc.xie) *.*))
普通の環境ではおそらくランタイムエラーが出て実行できません。
ランタイムエラーが起こらないようにするためには、CPU のクロック周波数が 200 MHz 以下のマシンで実行するか、パッチを当てる必要があります。
パッチを当てる作業については ランタイムエラー 200 が発生する を参考にしてみてください。
また、使い方を見るとすべてのファイル、またはひとつのファイルしか圧縮できないようなことが書いてあります。
実際に、msxie a sample.xie file1.ext file2.ext ...
のようにしてやると圧縮してくれません。
load: (name nsk.exe us) (type nsk NaShrinK) decode: (cmd (arc) /x) encode: (let a (arc.nsk)) (cmd (list\*) /s /T:%a) sfxd: (let b (arc.exe)) (cmd (list\*) /s /a /T:%b)
展開するときは、どこに展開するかのプロンプトが出ます。 JP モードでは表示されないので、Noah のバージョンを 3.04 以上にしてください。 普通は、ただ ENTER を押せばよいですが。 速度はけっこうでますが、圧縮率は低いです。
load: (name noa.exe) (type noah noa) decode: (cmd d (arc) (arc-.noa)) encode1: (cmd e (list) (arc.noa))
古いもの (1990年) なので、いろいろと制約が多い。 二重に拡張子がつくのはダメ。 圧縮、解凍時に出力先を指定することはできるが、新規にディレクトリを作成することができない。 解凍すると、拡張子なしのファイルが出来上がるので、ヘッダから適当にリネームしてください。 本当は、noah.exe です。それではまずいので、勝手にリネームしてあります。
load: (name nrvdemo.exe) (type nrv NRV2A_fast NRV2B_fast NRV2A_best NRV2B_best) decode: (cmd -d (arc) (dir)) encode1: (if (method 1) (cmd -m2a -1 (list) (arc.nrv))) (if (method 2) (cmd -m2b -1 (list) (arc.nrv))) (if (method 3) (cmd -m2a -9 (list) (arc.nrv))) (if (method 4) (cmd -m2b -9 (list) (arc.nrv)))
"-1", "-9" の部分は -1 から -9 まで指定できる。
デフォルトは -7。
http://wildsau.idv.uni-linz.ac.at/mfx/index.html
load: (name Nulib.exe) (type nulib nulib) decode: (cmd x (arc)) encode: (cmd a (arc.shk) (list\*))
なぜか名前からは想像もできない shk が拡張子らしい。
SHK という拡張子は ShrinkIt から来てるみたいです。
速いけど、圧縮率は高くない。
http://www.nulib.com/
load: (name nulib2.exe) (type nulib2 *deflate bzip2) decode: (cmd -xr (arc)) encode: (if (method 1) (cmd -arz (arc.shk) (list\*))) (if (method 2) (cmd -arzz (arc.shk) (list\*))) decode1: (cmd -xr (arc)) list: (scan "----" 1 "----" 1 1 -v (arc))
処理速度は速く、圧縮率はあまり高くありません。 nilib と何が変わったのかちょっと不明? 配布されているバイナリだと use bzip2 BWT option である -zz オプションは使えません。 Linux 上で --enable-bzip2 オプションをつけて configure してから make すると使えるのは確認できましたが、Windows だとわからんです。
http://www.nulib.com/