コマンドラインランチャ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
]