2009-10-30

Everything search engine の Filter

どえらく検索の速い Everything Search Engine にアルファ版が出ているようなので試してみた。
試したのはversion 1.2.1.442a。

いろいろ更新されたようなのだけれど、おいらの興味を引いたのは「Filters」というオプション。
任意の拡張子で検索結果を取捨選択できるようになった。

デフォルトでは
Audio, Commpressed, Document, Excutable, Folder, Picture, Recent,Videoと、8つのフィルターが用意されている。
もちろん好みのフィルターを自分で作ることもできる。



















たとえば、pdfファイルのフィルターを作成したければ、本体で Tool → Option → Filters とたどって、
New から 新規フィルターpdf作成する。
作成するには Search Filter: の項目を「nocase:ext:pdf」としてやればよいようだ。
(その下にある Filter macro といのがとても気になってフォーラムを調べたのだが、使い方がのっていない。おいおい追加される機能なのだろう)





















そうした上で本体の Search → Filters とたどって作成したフィルター pdf を選択して検索結果を絞り込んでもいいのだが、マウスを使うのが面倒くさい。
じゃあショートカットを割り当てればいいやと思って調べてみた。が、残念なことに、ショートカットを割り当てるオプション機能はあるにはあるのだけれど、デフォルトのメニューにある項目しか、割り当てられないので使えない。
結局マウスを使ってしかデフォルトでないフィルターの選択ができないようだ。

けれど、コマンドラインオプションに 拡張子のコマンド ext: が追加されたので、あらかじめ拡張子を指定しての検索ができるはずだ、と思いなおして試してみた。

こんなとき便利なのがfenrirのインスタントコマンド。

これを使えば、拡張子と検索したい文字列を同時に指定して検索ができる。

たとえば、インスタントコマンドはこんなかんじ。

pdf="C:\Everything.exe" -ext:pdf -search %A
こうしておけばfenrirを起動して pdf test と文字列を打ち込んで実行すれば、testという文字列を持ったpdfファイルが瞬時に検索できる。

こりゃ便利だとヌカ喜びをしていたら、fenrirから起動していったんフィルターをpdfにしてしまうと、手動でフィルターを変更しなければ、別の拡張子の検索ができないということに気がついた。

それじゃ不便だから、pdfファイルをインスタントコマンドから検索したように -ext:none とかにして(フィルターをかけない状態)で、同様にインスタントコマンドに登録して検索すればいいじゃんと試そうとしたところ、OptionのFilters のタブの中にはなんと none というフィルターがないではないか?!(メニューからは Search→Filter→Noneが選択できるのになんでOptionの中にはないんだぁ~?)

それなら、デフォルトのフィルターのext:を使ってインスタントコマンドに登録して使ってみようとしてみたが、コマンドラインオプションがうまく機能しないようで、うまくフィルターがかからない。

あれこれ試してみたが、どうやらフィルターは手動でセットするほかないようだ。

いかんせんアルファ版なんで仕方がない。
アルファ版に飛びつくと、よいことはあまりないということを学んだ次第。でも、あれこれ試してみたかったんだよね・・・
辛抱強く正式版がでるのを待ってから試したほうがいいようだ。

おまけ

なにも無理してEverything でやろうとしなくとも、Locate32でも、コマンドラインオプションを使えば、同様のことがちゃんとできるのに気がついた。侮るなかれ Locate32。個人的にはこちらの方が格段に使い勝手よいと思う。

ちなみにインスタントコマンドはこんなかんじ。

pdf="C:\Program Files\Locate\locate32.exe" -tpdf -An%A




2009-07-10

fenrirで選択した任意の場所に日付フォルダを作成し、PPc上で選択したアイテムを移動させる

メモ書きとかUrlのアドレスとか、すぐには使わないけれど、あとで使うので消すことができないファイルなど、ちょっとだけとかいってディスクトップに保存しておくことが多い。
そうするとあっという間に整理していないメモファイルがたまってしまい、ディスクトップが困ったことになる。
そんなときはメモ書き専用のフォルダに、その都度日付フォルダを作っては、保存することにしている。

これがけっこう面倒くさい。
操作性抜群のPPxを使ってさえ、面倒くさい。

その1 日付フォルダを作る
その2 デスクトップにある移動させたいファイルを選択する。
その3 日付フォルダにファイルを移動させる。
その4 日付フォルダをメモ書き専用フォルダに移動させる。

という手順を踏まなければならない。

なんとかラクできないものかとあれもれ悩んだ末の結論が以下のとおり。

使ったのは fenrir 、FireFileCopy、PPx の3つのソフト。


手順1

移動させたいファイルをPPc上で選択する。

手順2

fenrirを起動し、日付フォルダを作りたいディレクトリを指定し、実行する。

その際 fenrirのコマンドファイルの内容は以下のとおり。これを適当なキーに割り当てる。

[.***;
&DF |"C:\Program Files\PPX\PPCW.EXE" /r /k C:\hoge\ffc\FFC.exe  %#FCD /to:"%\%P\?y?m?d" /move /md 
]


たったこれだけ。
文字にしてしまうとあまりにもあっけなく簡単そうに見えるが、おいらにとってはそうではなかった。

ここでネックになったのが日付フォルダへの指定ファイルの移動。

日付フォルダを作成するのは、PPxのコマンドでも、簡単なbatファイルででも、できたのだったが、おばかなおいらは作成した日付フォルダに選択したファイルを、ワンプロセスで放り込むことが、なんとしてもできなかった。

この窮地を救ってくれたのがFireFileCopy。
FireFileCopyのコマンドラインオプション /to: には、フォルダ名に現在日時を挿入することができるありがたい機能がついている。

これを利用して、PPc上で選択したファイル(%#FCD)を対象に、FireFileCopyを、コマンドラインオプション /to: (/to:"%\hoge\?y?m?d" /copy /md )を付加し、そのコマンドラインの作成ディレクトリに、fenrir 上で選択したディレクトリ%Pを埋め込み(具体的にはhogeの部分)、で実行させればよい。

これで、どこでも好きな場所に日付フォルダを作成し、選択したファイルを、ほんの一瞬で移動させることができるようになった。

めでたし、めでたし。

2009-04-20

Everything search engine チョイ技

検索は超高速なのに、使い勝手がいまいちなEverythingをなんとかラクに使いこなそうと、無駄な抵抗を試みた結果をいくつかメモしておく。

なお、コマンドラインオプション、INIファイルの設定項目などについてはEverythingのSupportページVoidtools Wiki Command line options Ini を参考にさせてもらいました。

・指定したフォルダ以下を対象に検索を開始したい。
 (検索を開始するpathを指定して検索を実行したい)
コマンドラインオプション -path を指定して起動させる。

c:\hoge\Everything\Everything.exe -path "C:\Program Files"
c:\hoge\Everything\Everything.exe -path C:\Windows\system32

など、よく検索をかけるフォルダをランチャに登録しておけばよい。

検索速度が超高速なので、すべてのpathを対象にしてもよいのだけれど、絞り込み選択を少しでもラクにするには、pathを指定しておいた方が面倒でなくてよいと思った次第。

・指定した複数のフォルダ以下を対象に検索を開始したい。
コマンドラインオプション -config を使用すれば、読み込む設定ファイルINIを使い分ければ可能となる。

これにはすこしばかり手順を踏む必要がある。

オプションのでカスタマイズした設定は、デフォルトではEverything.iniに保存される。

オプションのタブExcludeでは(スクリーンショット左から4番目)、Exclude files and foldersをチェックすると、検索から除外あるいは含めたい要素(ファイル、フォルダ、フィルタ)が指定できる。

たとえば
C:\Program Filesの中から拡張子がtxt のファイルを除外したい場合、Add Filter*.txtを設定すればいい。


検索を実行したいフォルダを複数指定した場合は Add Folderで検索に含めたいフォルダを指定すればいい。(コマンドラインオプション -pathでは、複数のpathの指定を受け付けてくれない。とりあえずおいらの環境ではダメだった)
もちろん、逆に除外したいファイルやフォルダの指定もできる。

たとえば、My documents以下のフォルダのうち My Music My Picture My Video のみを含めたければ、Add Folder で上記ファイルのpathを指定すればよい。
IncludeExcludeの設定は下の画面のとおりであるが、どこまでを適応させるか以下のとおり選択肢が三つ用意されている。


独自のINIファイルを作るにはいくつか方法がある。
ひとつは、オプション画面からカスタマイズを行いApplyボタンを押して、いったんEverything.iniに保存する。その内容をそっくりコピーして別名のINIファイルを作成する。

ふたつめは、INIファイルを直接編集する方法。
INIファイル内の以下の項目をを編集すればよいのだが、けっこう面倒くさいので最初の方法でやったほうが確実だろう。

exclude_list_enabled
exclude_list
exclude_include_list
exclude_type_list
exclude_apply_to_list

自分の好みにカスタマイズしたINIファイルにそれぞれ名前をつけて作成し、検索用途ごとにINIファイルを使い分けられるようにする。

たとえば一番最初のスクリーンショットの例でいうと、
C:\Program Files の中から拡張子がtxt のファイルを除外した検索を行うINIファイルを txt.ini とした場合、

c:\hoge\Everything\Everything.exe -config c:\hoge\Everything\txt.ini

以上のようにコマンドラインオプションを指定してEverything本体を起動させればよい。

いちいちコマンドラインオプションを指定するのはめんどくさくてやってられないので、ランチャに登録して使用するようにするとよいだろう。
ちなみにShorter Launcherだとこんなかんじ。

&Program files exclude txt |c:\hoge\Everything\Everything.exe | -config txt.ini
Program files Include &exe |c:\hoge\Everything\Everything.exe | -config exe.ini
&Media exclude flv |c:\hoge\Everything\Everything.exe | -config flv.ini
&Image Include jpeg,bmp,png |c:\hoge\Everything\Everything.exe | -config jpeg.ini
&Music exclude qt |c:\hoge\Everything\Everything.exe | -config qt.ini


このうち上から2行目のように、Program filesのうち実行ファイルexeだけを表示させれば即席ランチャとしても使える。

これで、かゆいところに手の届く検索が可能となる・・・?かもしれない。
・検索対象テキストをあらかじめ入力してから検索を実行したい。

コマンドラインオプション -serach を指定して、fenrirのインスタントコマンドに登録して使うと便利である。

たとえば以下をインスタントコマンドに登録しておき、

es="c:\hoge\Everything\Everything.exe" -search %A

fenrirを起動後 「es ●●●」と探したいテキスト入力して実行すれば、検索したいテキスト●●●がEverything本体の入力欄に入力済みで検索が実行される。


なお、おいらの環境ではコマンドラインオプション -path -search は同時に使用できない。searchが優先されてしまい、すべてのpathを対象に検索が実行されてしまう。

おまけ
常駐させて使うのがいやだなぁと思う人向けに役に立つかもしれないTips

常駐使用が仕様なのであきらめるしかない。が、簡単に終了できるようにすることはできる。
頻繁に検索することなんてあるわけねえやぁ~という人向け。使い終わったそのたびに、終了させちゃえばいいのである。

具体的には、トレイアイコンをクリックするツール「TrayCommand」を使って以下のコマンドをshorter CraftLaunchなどのランチャに登録しておけば、わざわざマウスを使ってプログラムを終了する手間がはぶけてラクである。ちなみにコマンドはこんなかんじ。

c:\hoge\traycmd\traycmd.exe /R /K=DDDDDDE c:\hoge\Everything\Everything.exe