コマンドラインランチャfenrirの話。
最新版の0.75cでは半ば隠し設定だが、fenrirはアイテムの複数選択に対応している。
現在のcmd.txt等には残っていないが、history.txtに情報がある。
fenrir.iniの設定
自動生成される項目にはないが、SingleSel=1を追記すると複数選択が有効になる。
SingleSel=0、ないしは項目の削除で無効になる。
しかしこれ01が逆じゃないのか。あるいはMultiSelじゃないのか。
コマンドファイルの設定
ここをちょっと考える必要がある。
マクロ
コマンドラインにおいて、複数選択されたファイルは以下のマクロで参照できる。
| マクロ | 意味 |
|---|---|
| %MN | 選択した複数のパスを改行で区切ったもの |
| %MS | 選択した複数のパスをスペースで区切ったもの |
複数の引数を受け取れるアプリなら、%MSで1パス1引数として処理できる。
めったにないと思うが、単数の引数しか取れないアプリに複数のパスを渡したい場合は%MNを使うことになるだろう。
もしくは、ダブルクォートで囲んで"%MS"としても、全体でひとつの引数として解釈してくれるようだ。
単数選択時のマクロ%P等は、ダブルクォートで囲まないと、スペースを含むパスをひとつの引数として解釈できない場合がある。
よって、最終的には渡す先のアプリ次第だが、単数マクロはダブルクォートする、複数マクロはダブルクォートしない、を基本にするとよい。
拡張子
通常、コマンドファイルは選択中のアイテムの拡張子ごとに設定する。しかし、複数選択の場合は拡張子も複数になりえるので、専用の特殊拡張子|||が用意されている。
ここで、各アイテムの拡張子に対応するメニューも一緒に呼び出されることに注意する必要がある。まあ選択肢が出るから普通に選べばいいのだが、私のようなホットキーだけで確定しろ病の人は、あるコマンドファイルにおいて複数選択拡張子|||およびその他拡張子を表す???のみを設定するなどの工夫が必要。
設定例
ctrl+dで単数または複数のファイルをdeletefileで削除する場合。
???じゃなくてすべての拡張子を表す***だと、複数選択時に両方出てくる。
[.???;
ゴミ箱に入れる(単数)|C:\apps\tools\deletefile\DeleteFile.exe %P
]
[.|||;
ゴミ箱に入れる(複数)|C:\apps\tools\deletefile\DeleteFile.exe %MS
]