PPxの初期状態では書庫のディレクトリ構造無視、
指定ディレクトリまたはカレントに全ファイル展開、
複数マークしても先頭しか処理しないとちょっと
使いづらい。
前述3つのうち最初の二つはP_unxをいじれば
よさそうだが、最後の一つはどこでカスタマイズ
できるか良くわからなかった。
話し変わって自分はWinRARをメインに使用している。
ヘルプを含め完全日本語化、コマンドライン対応、
多種の圧縮形式に対応と言うことで良いツールだと
思っている。重いのがやや難点か。
PPxは書庫ファイルのハンドリングに
統合アーカイバープロジェクトのDLLを使用している。
PPxの定義を変えるとなるとDLL毎に
定義を調べテストしなければならない。
これはかなりの手間。
いっそWinRARに統一してしまうのが手っ取り早いと
PPxの書庫ファイル展開処理をカスタマイズすることに。
PPxデフォではE_unpack2で拾えるのはPPxが
判定し終わった後。
これでは肝心の書庫ファイルを処理できない。
なのでユーザー拡張子判定メニューをE_unpack
と言う名前で追加
E_unpack = { ; 書庫解凍ユーザー設定
APE ,%Os Monkey "%C" "%$2%\%X.wav" -d
TTA ,%Os TrueAudio -d "%C" "%$2%"
TAK ,%Os TAK -d "%C" "%$2%\%X.wav"
FLAC ,%Os FLAC -s -d "%C" -o "%$2%\%X.wav"
* ,%Os WinRAR x "%C" "%$2%\%X%\"
}
今回の肝は%Osと%$2。
%Os 一つずつファイルを処理。s入れないとマークした
数だけプログラムが起動されてしまう。
%$2 一行編集で展開先取得。%!2だと複数マーク時に
毎回聞かれるので%$2を使用
%\ 末尾が\でない場合に\を付与
%X 拡張子を除いたファイル名
あとはエイリアス定義してUキーに割り当てるだけ。
WinRAR = "C:\Program Files\WinRAR\WinRAR.exe" ※エイリアス
U ,%ME_Unpack
実行してみると大きなファイルでWaitingと言う
ウインドウが出ることがある。
ほっとけば消えるけどなんか不思議。