9.初期登録されている拡張子設定に関する解説
以下に初期状態で登録されている拡張子設定について具体的に解説します。
(1) 「WinRARで解凍」-batの設定
もっとも単純なパターンで、「bat」の拡張子を持つファイルがメインウィンドウにDropされると、「Command」にそのフルパスが入ります。
これは「Command」に書かれている「%file_path%」という文字列がファイルのフルパスに置き換えられた結果です。
実行時には、「Commandをそのまま実行」の指示に従って、ファイルをダブルクリックしたときと同様に動作します。この後、立ち上げた
バッチファイルが終了するのを待ち続け、終了した時点で次のリスト項目を実行します。
なおアプリのパスは空白でも構いません。(batの場合は実行には関係ないので設定しなくてもOKです)
(2)「WinRARで解凍」- par2の設定

batとの違いは、完了条件が違うのとアプリのパスが設定されていることです。par2に関連付けられたQuickPar.exeは、処理が終了しても
自動でアプリを終了しないため、CPU使用時間の低下を監視して終了させてやる必要があるので完了条件は「CPU低負荷」です。
アプリのパスに関しては、設定してあるものの実際には使用されていません。実行時はbatと同じく、ファイルをダブルクリックした時と同じ動作を
します。但しpar2という拡張子がQuickParに関連付けられていないと動作しないので注意してください。
(3) 「WinRARで解凍」-rarの設定

「Commandの処理方法」が「AppPath+Commandで実行」なので、実行ファイルを「WinRAR.exe」、その引数を「Command」の文字列として
実行します。全体としては、Dropされたrarファイル(%file_path%と置き換え)をrarファイルのあるフォルダ(%parent_path%と置き換え)に解凍することに
なります。「X -y -o- -p- -av-」がWinRARのコマンドとオプションで、「X」がパス付で解凍するコマンド、その後ろが順に、すべての質問にyesと
答える、上書きしない、パスワードを"-"にする、信頼情報を無視するというオプションです。(詳細はWinRARのヘルプを参照してください)
書庫にパスワードが設定されていたり、書庫が壊れたりしていると、異常終了となります。
またWinRARは解凍が終了すると自動的にアプリを終了するので、「完了条件」は「アプリ終了」です。
(4)「WinRARで解凍」- zipの設定

rarと同様にWinRARを使って解凍します。違うのは「Command」の生成方法と、それをCMD.EXEに渡すということです。
例えば、「C:\hoge\A.zip」というファイルがメインウィンドウのリスト表示部にDropされると「Command」には以下の文字列が設定されます。
「"C:\Program Files\WinRAR\WinRAR.exe" X -y -o- -p- -av- "C:\hoge\A.zip"
"C:\hoge\A\"」
(上図では「Command」が最後まで見えていないので、実際のアプリで確認してください)
これがCMD.EXEに渡される(バッチファイル中にコマンドを書いて実行するのと同様の動作)とA.zipをWinRARを使って解凍しますが、その際、
A.zipのあるフォルダに新たにAというフォルダを作ってその中に解凍したファイルを作成します。
実はこの設定はrarとまったく同じでも問題ないのですが、処理方法の違いがわかりやすいように、わざと違う設定にしてあります。
(5)「WinRARで解凍」- 001の設定

hoge.avi.001,hoge.avi.002,hoge.avi.003,.....というように単純分割されたファイルを簡易バッチ機能を使って結合します。
Commandには以下の文字列が設定されています。
del "%filename_base%.000" && copy /b "%filename_base%.0??"
"%filename_base%" && if exist "%filename_base%.1??"
copy /b "%filename_base%"+"%filename_base%.1??" "%filename_base%"
& if exist "%filename_base%.2??" copy /b "%filename_base%"+"%filename_base%.2??"
"%filename_base%" & if exist "%filename_base%.3??"
copy /b "%filename_base%"+"%filename_base%.3??" "%filename_base%"
これをCMD.EXEに渡すことで、&&で区切られたコマンドをバッチファイルと同様に実行します。
具体的な動作は、
(a)000というファイルが存在すると困るので最初に削除する。
(b)001-099までのファイルを結合する。
(c)もし100-199のファイルがあったら、001-099を結合したファイルにさらに結合する。
(d)もし200-299のファイルがあったら、001-199を結合したファイルにさらに結合する。
(e)もし300-399のファイルがあったら、001-299を結合したファイルにさらに結合する。
400以降のファイルがあると結合できないので、その場合は以下のコマンドを後ろに追加します。
& if exist "%filename_base%.4??" copy /b "%filename_base%"+"%filename_base%.4??"
"%filename_base%"
(6)「WinRARで圧縮」- /defaultの設定
WinRARを使用して、指定されたファイルを拡張子にかかわらずrarに圧縮します。-dfが指定されているので、圧縮後に元ファイルを削除します。
圧縮ファイルは元ファイルと同じ場所に作られます。
拡張子にかかわらず圧縮するために、特殊拡張子/defaultを使用しています。
|