*[PPx]PPxカスタマイズメモ - 書庫ファイルの作成

書庫ファイルの展開をWinRARに統一したので
続いて書庫ファイルの作成(圧縮)もWinRARに
統一することに。

困ったのが書庫ファイル名の取得。


%Ob WinRAR a -u -r "%$2%\%X" "%C"
%Ob WinRAR a -u "%$2%\%X" "%C"
だとa.txtとb.txtをマークして実行すると
a.rarとb.rarの二つができてしまう。
理想はa.rarにa.txtとb.txtが格納されること。


PPxのヘルプを再読。
レスポンスファイルと言うのが使えるかもと調べてみる。
このレスポンスファイル。
ヘルプを読んでも良くわからなくてgoogleで検索。
あまり情報がなくにちゃんねる掲示板でnotepadを
順次実行する方法として
for /F %%i in (%a) do notepad %%i
が見つかるくらい。
#ちなみにfor 〜 in 〜 doはバッチコマンド
#DOS窓でHELP FOR叩くとコマンドヘルプが出てくる


わからないなら実行してみるかと
P ,%a
と%aだけ定義して実行。


テンプディレクトリにファイルが作成された。
覗いてみるとファイル名(拡張子つき)のテキストファイル。
TEMPDIR、a.txt、b.txtの三つをマークして実行すると
TEMPDIR\*
a.txt
b.txt
と三行書かれている。


どうもレスポンスファイルとはマークした
エントリを指定書式(F、D、C、X等)で書き出す
テキストファイルらしい。

%aのみ(書式無指定)は%C相当なのでファイル名のみ。
*を指定していないのでディレクトリ末尾に\*が
付与された。
%@も試してみたが%aとの違いは良くわからなかった。


だがこれだと上述の問題解決にはならない。
困ったなぁーと今度はWinRARのヘルプを再読。


WinRARのコマンドにもスイッチにも有用なものがない。
ファイル名固定にしないとダメかなと諦めかけたのだが
コマンドライン文法を再度チェックして目に付いた
WinRARのリストファイル。


リストファイルは処理するファイル名を記述した
テキストファイルです。※WinRARヘルプより

PPxのレスポンスファイル=WinRARのリストファイルじゃん!

と言うわけであっさり解決。


P ,%Ob WinRAR a -r "%$2%\%X" @"%a*"
P ,%Ob WinRAR a "%$2%\%X" @"%a*"

@ファイル名がリストファイル。
ちなみにWinRARでZIP書庫が作れることも今回知った。(汗)
#まさかWinRARでZIP作れるとは思わなんだ。


ついでなので書庫作成メニュー(M_xpack)を整理。

M_xpack = { 書庫作成ユーザーメニュー
&ZIP = %Ob WinRAR a -r -afzip "%$2%\%X" @"%a"
&SFX = %Ob WinRAR a -r -sfx "%$2%\%X" @"%a"
&Password = %M_pass
}
M_pass = { パスワード付書庫作成メニュー
&RAR(Pass) = %Ob WinRAR a -r -p "%$2%\%X" @"%a"
&ZIP(Pass) = %Ob WinRAR a -r -p -afzip "%$2%\%X" @"%a"
&SFX(Pass) = %Ob WinRAR a -r -sfx -p "%$2%\%X" @"%a"
}

M_xpack = { 書庫作成ユーザーメニュー
&ZIP = %Ob WinRAR a -afzip "%$2%\%X" @"%a"
&SFX = %Ob WinRAR a -sfx "%$2%\%X" @"%a"
&Password = %M_pass
}
M_pass = { パスワード付書庫作成メニュー
&RAR(Pass) = %Ob WinRAR a -p "%$2%\%X" @"%a"
&ZIP(Pass) = %Ob WinRAR a -p -afzip "%$2%\%X" @"%a"
&SFX(Pass) = %Ob WinRAR a -sfx -p "%$2%\%X" @"%a"
}

※-r付きだと予想外のファイルが一緒に圧縮されることに気づいた

RAR、ZIP、SFX。
それぞれのパスワード有り、無しのみにしぼった。

これで書庫ハンドリングのカスタマイズは一段落かな。