ケーススタディ、こんな時どうする?

Everythingを使って検索連携

 As/Rの検索機能は、エクスプローラーに丸投げするものと、同梱のFin.exeという検索専用のコマンドを使ったものがあります。
 Fin.exeは旧作の時代から生き残ってるファイル検索の専用ソフトで、そういや単品で売り飛ばしたこともあったなというくらい登場当初は評価されてましたが、さすがに時代遅れ感が否めません。
 というわけで同梱のFin.exeと同じように、高速検索を可能とするEverythingを設定する実例を紹介したいと思います。


Everythingとは

 ローカルディスクの検索速度が抜群に速い検索特化のソフトで、ウチのソフトより有名でしょう。
 ただ速度を優先するために色んなものを諦めており、制限事項も少なくないのですが特定の用途に特化した素晴らしいソフトであると思います。
 ざっくりと、各検索機能の特徴を表にすると、こんな感じです。
 いつもの台詞ですが、メリットとデメリットを把握した上でTPOによって使い分けてください。

公式サイトhttps://www.voidtools.com/

エクスプローラー Fin.exe Everything
ローカル検索方式 インデックス/逐次検索 逐次検索 NTFS/ReFS専用
ローカル検索(速度) インデックスがあれば速い、取りこぼしあり 普通、取りこぼしなし 爆速、データベースの遅延で取りこぼしあり
ネットワーク 非インデックス、遅い 速い 不可
リムーバブルメディア 非インデックス、遅い 普通 不可


スクリプトの作成

 まず、スクリプトを作ってユーザー情報の管理ディレクトリの下の「Script」に以下のテキストをUNICODEで作成してください。
 名前は「Everything検索」としておきましょう。

CommandlineOption=-p "?nowdir?"
OpenMode=0
MultiCommandMode=0
ShiftSilentMode=0
BootDir=
BootMode=0
Run=C:\Program Files\Everything\Everything.exe
     ↑ここはEverythingをインストールしているパスを記載してください。
     「%ProgramFiles%\Everything\Everything.exe」のように環境変数を使うのも良いでしょう。

コマンドIDの割り振り

 オプション→コマンド定義→「スクリプトコマンド」ボタンを押します。
 (定義ファイルの編集方法を「簡易ダイアログ」にしてください)

 「追加」ボタンを押して、行を追加します。
 上から順番に設定項目をセットしています。

 IDは何番でも良いのですが、ここでは適当な空き番号の「40009」に割り振っておきます。
※ツールバーに配置する場合は、規程の範囲の40451~40500の間の50個しかIDが許されていませんので計画的に割り当ててください。
 プロセス間通信による連携方法は、「連動なし」を選択。
 「現在のフォルダーの条件無し」「無条件で実行」「実体がある物のみ連動」を選択していきます。
 コマンドラインには先ほどのスクリプトのパスを記載して「%Script_dir%Everything検索」とします。
※%Script_dir%はユーザー情報の管理ディレクトリの下の「Script」に置換されます。
 説明には現在のフォルダーを「Everythingで検索」とします。
※「説明」は必須項目ですので、省略してはいけません。

 コマンドIDの割り振りが終わったら、As/Rを再起動するか「コマンド定義ファイルの再読み込み」を実行してください。


キーに割り当て

何でも良いのですが、ここでは Ctrl + E に割り当てます。
オプションのインターフェイス→キー割り当てで「キー」と「コマンドID」を紐付けます。



Everythingの設定

まずオプションの全般→コンテキストメニューの「規程のファイラーで開く」と「規程のファイラーでパス開く」をカスタマイズします。

$exec("C:\Asr\AsrLoad.exe" "%1")
     ↑ここはAs/Rをインストールしてあるパスを指定してください
     AsrLoad.exeを使うのがこの節のキモです



 オプションの全般→キー割り当てで「規程のファイラーでパス開く」を BackSpase キーに割り当てます。
 コレでおしまいです。



 As/R上で Ctrl + E を押してEverythingで検索し、検索結果からアイテムを選択して BackSpase キーでAs/Rに戻って来れます。
※BackSpaseキーでAs/Rにもどってくるのは、Fin.exeと同じ動作なので例示としました。