まとめ?その1

3年近く書きためていた内容を一旦整理するという意味で、この備忘録をヘルプファイルにまとめてみました。
自鯖においてあったファイル全部無造作に詰め込んであるので12.2Mもありますが・・・需要があればどうぞ。 ⇒

(某所で作成していただいたのがきっかけなのですが、丁度時間もあったので自分で色々弄くっていたらある程度形になったので・・・)


転載、再配布はお好きにどうぞ。(同梱物について不都合な点があればここにコメントください)

サムネイルのキャッシュ

Susieプラグイン対応やリサイズ対応などの利便性から、X-Finderの特徴の一つだったサムネイル表示(縮小版・並べて表示等)だが、
11-1-1から、一旦描画されたサムネイルが保存されるキャッシュ機能が実装*1され、その使用用途が大きく広がった。

キャッシュを有効にするには"ツール"→"詳細オプション"→"最小キャッシュサイズ"の値を"1"以上にすればよい。
("0"だとキャッシュ無効、"-1"だと逐一以前作成したキャッシュを削除する)

キャッシュの恩恵

サムネイル描画の高速化

OSが標準で表示できる画像に加え、Susieプラグインを使用して対応する画像ファイルや動画ファイル、CADデータ等もサムネイル作成できるのはX-Finderの便利な機能の一つだったが、以前はフォルダを読み込む度に逐一サムネイルを作成していたため、サムネイル作成に時間がかかるファイル(大きな画像や動画ファイル等)が含まれるフォルダだと描画にかなり時間がかかっていた。

キャッシュの実装により、こうしたサムネイル作成に要した時間がなくなったため、今まで描画終了まで待たされる時間が長かったフォルダでは特にその効果を実感することができる。

サムネイルの変更

サムネイルのキャッシュはそのファイルのNTFS代替データストリーム(Alternate Data Streams)に"thumbnail.jpg"として保存されている。
(Alternate Data Streamsについてはこちらこちらを参照)
このため、参照される"thumbnail.jpg"を変更することにより、サムネイルとして表示される画像を各自で設定することができる。

β版の11-2-33より"Thumbnail:"コマンドができたため、サムネイルの変更は非常にお手軽になった。(上記を意識しなくても簡単に操作できるようになった)

サムネイルを独自に設定・変更

Alternate Data Streamsの"thumbnail.jpg"がそのファイルのサムネイルとなるので、"thumbnail.jpg"さえ設定すればどんなファイルでもサムネイルを変更可能だし、通常サムネイルが表示されないファイルやフォルダにもサムネイルを付けることができる。


以下はビルトインコマンドの"Thumbnail:"を使用して"thumbnail.jpg"を任意のファイルに変更するランチャ。任意のファイルのフルパスをクリップボードにコピーしてから実行する。

サムネイルを設定する
[パス]
Thumbnail: %clipboard% "%focused%:thumbnail.jpg"
[動作]
実行


このランチャでサムネイルを変更したところ。"Water Lilies"は実際の画像とは異なるサムネイルを表示している。
(プレビューで表示されているのが実際の画像)

サムネイル用の画像を作成するには、ImageMagick等も利用できる。
以下はImageMagickのconvert.exeを利用してフォーカスされた画像から160x160のサムネイル用画像を作成するランチャ。

サムネイル用画像thumb.jpgを出力する
[パス]
..convert.exe %focused% -resize 160x160 -size 160x160 xc:#E6FFE6 +swap -gravity center -composite thumb.jpg
[動作]
実行

実際に動作させると、この画像がこう変わる。空白を埋める色も指定できるので、ウインドウの背景色と統一しておくと違和感なく表示できると思う。

キャッシュはタブを更新しただけでは作成し直されないので、描画に失敗したファイルのサムネイルを個別に作成し直すときには"Thumbnail:Delete"を使用してキャッシュを削除するとよい。(上記のランチャで設定したサムネイルを削除したいときにも使用)

選択したファイルのサムネイルを削除する
[パス]
Thumbnail:Delete %Selected%
[動作]
実行

以下ではサムネイルの設定の具体的な活用例について書いていく。

――関係するコマンド
  • Thumbnail:Create 〜・・・〜のサムネイルキャッシュを作成する
  • Thumbnail:Delete 〜・・・〜のサムネイルキャッシュを削除する
  • Thumbnail: A B C,D・・・・Aを基にして、CxDの大きさのjpgファイルBを作成する
動画ファイルに好きなシーンのサムネイルをつける

システム標準の機能やMediaPlayer Susie Plug-inを使用すれば対応する動画ならサムネイルも一応作成することができるが、細かなシーンの指定等をすることはできない。
(以下では、サムネイルサイズ:160x120の例で記述していく)

 だが、キャプチャ機能がある動画再生ソフトで好みのシーンをキャプチャし、上述のランチャで変換してそのファイルのサムネイルにすれば、好みのシーンをサムネイルにして管理することができる。


とはいっても一々動画をチェックしてサムネイルを選択するのは非常に時間がかかるので、ここでは動画のサムネイルを作るやつ*2でサムネイル一覧の画像を作成し、Bitmap Knifeで任意の領域を選択するといった方法でサムネイル用元画像を用意するランチャを紹介する。

サムネイル用画像を選択する
[パス]
...MovieThumbGenWin32.exe -c=4 -r=4 -w=160 -h=120 -f=png -q=90 -b=FFFFFF "%focused%" "*thumbnail.png" -o
Confirm:"確認","%focused%thumbnail.pngからサムネイルを選びます"
...BmpKnife.exe "%focused%thumbnail.png"
[動作]
実行

実際に使用すると、こんな感じ。

  1. DOS窓が消えてサムネイルの元ファイルの作成が終わったことを確認しOKをクリック
  2. Bitmap KnifeでXFのサムネイルサイズを入力し、サムネイルを選択
  3. クリップボードにコピーしてjpg保存

以上でサムネイルサイズのjpgファイルが用意できるので、上述のランチャでサムネイルに設定すればよい。

Bitmap Knifeは事前にSusieプラグインのフォルダを指定しないとPNGが読めないので注意。

また、別のツールを使ってより簡単にサムネイルの設定を行う方法もある。以下はそのランチャ。

サムネイル用画像を選択する
[パス]
...MovieThumbGenWin32.exe -c=4 -r=3 -w=160 -h=120 -f=png -q=96 -b=FFFFFF "%focused%" C:\temp\temp.png -o
...T13_595.lnk
Confirm:"確認","サムネイルを設定"
Thumbnail: C:\temp\thumb.png "%focused%:thumbnail.jpg"
[動作]
実行

実際に使用すると、こんな感じ。

T13_595.lnkはT13_595.jarのショートカット。実行には前もってJavaの導入が必要。
上記ランチャの実行前にT13_595.jarを実行し、入力ファイルの欄に「C:\temp\temp.png」、サムネイルサイズ(上記の例なら160,120)、
実行コマンドの欄に「"〜i_view32.exe" "%img%" "/convert=C:\temp\thumb.png"」を入力しておく。

シーンを選ばずに複数のシーンを並べたサムネイルを作成してその画像を動画のサムネイルにしたい場合は、下記のような内容のbatファイルを作成してbatファイルに動画を送るランチャを設定し、動画ファイルを選択して実行すればよい。
ランチャを実行するとサムネイル作成→サムネイル変更→リスト更新まで自動で行える。

複数の動画ファイルにサムネイルを設定する"thumb.bat"(160x120用)
[thumb.bat]
@echo off
:thumb
if "%~1"=="" goto :ed
...MovieThumbGenWin32.exe -c=2 -r=2 -w=80 -h=60 -q=95 -b=FFFFFF %1 C:\temp\thumb.jpg -o
Type C:\temp\thumb.jpg > "%~1:thumbnail.jpg"
shift
goto thumb

:ed
...XF.exe Refresh:2
goto :eof

実行後の画面はこんな感じになる。

IEのお気に入りにそのページのサムネイルをつける


IEのお気に入りにサムネイルをつければ、視覚的にお気に入りを管理できるようになる。これは特に普段あまり見ないページの内容を把握するのに非常に有効だと思う。

以下は CrenaHtml2jpgで任意のページのサムネイルを作成、IEのお気に入り(urlファイル)のサムネイルをその画像に変更するランチャ。(サムネイルサイズは160x120に設定)

X-FinderでのWebブラウジングを禁止していると動作しないので注意

インターネットショートカットのサムネイルをそのページから作成した画像にする
[パス]
0:%focused%
...\crena\CrenaHtml2jpg.exe -u%current% -o...\crena\temp.jpg -fjpeg -w640x480 -s160x120 -q92 -d72 -t25
Confirm:"確認","サムネイルを設定します"
Close:
Thumbnail: ...\crena\temp.jpg "%focused%:thumbnail.jpg"
[動作]
実行

確認ダイアログの背後のタブでページの描画が終わったくらいのタイミングでOKをクリックするとうまく動作すると思う。

フォルダのサムネイルをそのフォルダの最新画像にする

XPのexplorerには、フォルダ直下の画像最大4枚をそのフォルダのサムネイルにする機能があり、さらに、フォルダ直下に"folder.jpg"というファイルをおくことでその画像1枚のみをサムネイルとして指定できる機能がある。

以下はその機能を利用してフォーカスしたフォルダのサムネイルをそのフォルダ直下の最新画像1枚のものにするランチャ。

あらかじめ、"ツール"→"詳細オプション"の"システムで表示するファイル"に"*.folder"を記述しておくなどして、エクスプローラの機能でフォルダのサムネイルを表示するようにしておく必要がある。

フォルダのサムネイルを最新画像にする
[パス]
2:Open:
Open: *.jpg;*.png;*.gif;*.bmp
Sort:-更新日時
Thumbnail: "%Focused%" "%current%\folder.jpg"
Close:
Thumbnail:Delete %focused%
[動作]
実行・新規タブ

上のランチャをこの状態で実行すると、こうなる。

画像ファイルをまとめた圧縮ファイルに好きな画像のサムネイルをつける

ファイル数の増加やサブフォルダの増加を避けるために、画像ファイル等をフォルダに分類するのではなくzip等の圧縮フォルダにまとめて管理するといった方法があるが、圧縮フォルダは専用のViewerソフトがないと中身を確認できない。
上述のランチャでサムネイルを設定すれば中身を見た目で判別できるが、圧縮フォルダを解凍→フォルダ内の画像ファイルからサムネイルを作成する・・というのは結構手間がかかる。

以下ではHamanaImageMagickを併用して閲覧中の書庫ファイル内の画像からサムネイル用のJPGファイルを作成する方法を紹介する。


Hamanaの設定は上の画面のようにする。
任意のキーやマウス操作に外部アプリケーションの実行を割り当て、"プログラムと引数"には上述の「imagemagickのconvert,exeを利用してサムネイル用JPGを作成する」ランチャの内容を割り当てる。(具体的には以下の内容)

..convert.exe "$F" -resize 96x96 -size 96x96 xc:#FFFFFF +swap -gravity center -composite C:\temp\hamana.png

ここでは、Homeキーを押すと「サムネイル表示中に選択したファイルを、96x96のサイズにアスペクト比を保持したままリサイズして空白を白で塗りつぶし、"C:\temp\hamana.jpg"として出力する」動作を行うようにしている。

出力されたファイルを確認し、サムネイルを変更したいファイルをフォーカスして以下のランチャを実行すれば書庫にサムネイルをつける作業は終了する。

サムネイルを設定する
[パス]
Thumbnail: C:\temp\hamana.png "%focused%:thumbnail.jpg"
[動作]
実行

また、Imagemagickの機能を利用して以下のような画像を表紙用に作成することもできる。

このときのパスの内容は以下のとおり。

..convert.exe" "$F" -resize 160x120 -matte -virtual-pixel transparent -channel A -blur 0x12 -level 0,50% C:\temp\hamana.png
画像ファイルをまとめた圧縮ファイルの先頭画像をそのサムネイルにする

上述した圧縮ファイルの中身を確認する作業さえわずらわしいときのため、以下では複数ファイルを対象として、それぞれの圧縮ファイルの先頭画像を自動的にそのサムネイルにする方法を紹介する。
用意するのは下記の内容のbatファイル、Portable版の7-ZIP、Xnview付属のnconvert.exeである。
実行前に"C:\temp"フォルダを作成しておく必要がある。

複数の圧縮ファイルに先頭画像サムネイルを設定する"archivethumb.bat"(160x120用)
[archivethumb.bat]
@echo off
set path="7z.exeのフォルダのパス";"nconvert.exeのフォルダのパス";%path%
:thumb
if "%~1"=="" goto :ed
7z x %1 -oC:\temp\tmp *.jpg *.png *.bmp *.gif -r -aoa
cd /d C:\temp\tmp
dir /b /s /o *.jpg *.png *.bmp *.gif>temp.txt
find /N /V "" < temp.txt >nlist.txt
for /F "tokens=1,* delims=[]" %%A in (nlist.txt) do if %%A LEQ 1 echo %%B>>pic1.txt
for /F "delims=" %%A in (pic1.txt) do nconvert -quiet -32bits -out jpeg -o "c:\temp\thumb.jpg" -ratio -rtype lanczos -resize 160 120 "%%A"
Type c:\temp\thumb.jpg > "%~1:thumbnail.jpg"
rmdir C:\temp\tmp /q /s
shift
goto thumb

:ed
..XF.exe Refresh:2
goto :eof

対象ファイルを"archivethumb.bat"に送るランチャを実行すれば、圧縮フォルダにサムネイルがついていくのが確認できると思う。
7-Zipが解凍できる形式なら全て実行可能。


また、対応形式がzipのみに限られるがより高速に動作する別のツールを使用した"archivethumb2.bat"は以下のとおり。
ここでは画像のリサイズにIrfanviewを使用している。

複数のzipファイルに先頭画像サムネイルを設定する"archivethumb2.bat"(160x120用)
[archivethumb2.bat]
@echo off
:thumb
if "%~1"=="" goto :eof
..T13_036.exe -f %1 -d C:\temp\tmp\ -i 0 -t "..i_view32.exe  /resize=(160,120) /aspectratio /resample /convert=c:\temp\thumb.jpg"
ping 1.0.0.0 -w 800 -n 1
Type c:\temp\thumb.jpg > "%~1:thumbnail.jpg"
rmdir /s /q c:\temp\tmp
shift
goto thumb

"T13_036.exe"の仕様は以下のとおり。
-f 入力ファイル(zip)のパス
-d zipのi番目のファイルを出力するフォルダ(作業フォルダ)
-i zipの何番目のファイルを出力するか
-t ファイル出力後に実行するパス。(<input>は-fで指定したパスを表し、はzipを解凍して出来たファイルのパス。)


または、こちらで公開されているSetFolderThumbnail.jsを使用して下記のようなランチャを実行すると、OSがフォルダとして扱えるファイル類に対して上記と同様な動作となる。

複数の圧縮ファイルやフォルダに先頭画像サムネイルを設定する
[パス]
1:Include:JScript SetFolderThumbnail.js /r SetSelectedFolderThumbnail
[動作]
実行
文書ファイルやプレゼン用ファイルに印刷イメージ画像のサムネイルをつける

PRTGAPHを利用して印刷イメージ画像を作成し、イメージカッター等で内容がわかるようにサムネイルサイズの画像を作成する。

*1:実装の仕様上NTFSが扱えないOS(98やMe)では使用できないので注意

*2:WMPで再生可能な状態ならFLVファイルやmp4ファイル等、システム標準ではサムネイルを作成できないファイルもサムネイルを作れるソフト

起動と終了

X-Finderは終了時にタブの状態やツリーの展開の有無などを保存しているので、通常の方法で起動するとこれらは再現されるが、「前回の作業内容に関係なく今日はこのフォルダを最初に開きたい」「その日の気分で設定を切り替えた状態で起動したい」といった場合、"コマンドラインオプション"や"起動時の処理"を活用することで実現できる。

起動時の処理

"起動時の処理"はX-Finderが起動する際に必ず実行する動作。ランチャの[パス]と同じような内容が記述できる。
編集は"ツール"→"基本オプション"→"起動"タブの"起動時の処理"か"ツール"→"詳細オプション"→"起動時の処理"から。


常に同じフォルダを開いた状態で起動したい、または同じ設定(ツリーや画面分割等)で起動したいといった場合に有効。

コマンドラインオプション

X-Finderを起動するショートカットの"リンク先"の記述を変更したり、Explorerなどの他のプログラムから任意のフォルダをX-Finderで開きたいときに活用するためのもの。
"起動時の処理"が「起動する際に必ず実行すること」であるのに対して、コマンドラインでの動作の指定はその前段階のものになり、
ショートカットを複数切り替えて使用するなどすれば簡単に起動時の動作を変更できるのが利点。


コマンドラインオプションの項目については以下の通り。(ヘルプより引用)

xf.exe [/n][/e][/c][/s][,][path][,path...] [/idlist,[object]]

/n フォルダツリー無しで開く
/e フォルダツリー付きで開く
/c 開いているタブを閉じる
/s 新しいタブを開かない
/m 多重起動
/t タスクトレイに格納
/idlist .....\xf.exe /idlist,%I,%L とするとフォルダへ関連付けができる。
(.....の部分はxf.exeをインストールしたフォルダ c:\bin\xf 等)
.
.
.
pathの部分にビルトインコマンドを書くこともできます。

オプションに加えて普通のビルトインコマンドが使用できるので、非常に多種多様な起動の指定が可能となっている。

パスの記述では、"c:\program files\.."とすると"program files"にフォーカスを合わせた状態で"c:\"を開くことができる。(指定したフォルダの指定した項目にフォーカスを合わせてフォルダを開くことができる)


以降はX-Finderのインストールされているフォルダが"C:\Program Files\X-finder"という前提で記述する。

Explorerでフォルダに関連づける場合

下記の内容をフォルダオプションから"フォルダ"のアクションに追加すれば、エクスプローラの右クリックメニューからX-Finder上でそのフォルダを開ける。
また、"既定"に設定すればエクスプローラでのフォルダのWクリックで開くことができる。。

"C:\Program Files\X-finder\xf.exe" /idlist,%I,%L


また、下記のように記述すれば「X-Finderの分割画面の右側の一番右側のタブで開く」ことが可能になる。

"C:\Program Files\X-finder\xf.exe" /idlist,ChangeTab:Right,ChangeTab:@-1,%I,%L

このように、開く動作と同時にビルトインコマンドを実行したい場合は/idlistと%Iの間に","で囲んで記述するとよい。

レジストリを変更する操作なので、登録には注意が必要。間違えた場合はContexterなどで修正するか、

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell

を直接regedit.exeで開いて編集すればよい。

読み込む設定を変えて起動したい場合

起動時にxf2.iniとXFtab2.iniを読み込むことで通常の設定と切り替えて使用する例。

"C:\Program Files\X-finder\xf.exe",Load:"C:\Program Files\X-finder\xf2.ini",ChangeTab:Load "C:\Program Files\X-finder\xftab2.ini"
ExplorerのかわりにX-Finderでフォルダを開く

基本オプション→その他タブ→"エクスプローラの代わりにX-Finderで開くフォルダ"に記述したフォルダは、Explorerで開こうとするとX-Finderがそのフォルダを取り込んでExplorerを閉じる動作をする。
記述のルールはフォルダ設定でのフィルタの記述と一緒なので、"?:\*"と記述すれば全てのローカルドライブのフォルダをX-Finderで開く(取り込む)ようになる。X-Finderを常に起動した状態(スタートアップでX-Finderをタスクトレイに格納した状態で起動しておく等)であれば、X-Finderをフォルダに関連付けた動作に近い状態になる。

「特定のフォルダのみX-Finderで開く」「特定のフォルダ以外はX-Finderで開く」といった設定も可能

タブの保存・設定の保存

設定全般は"ファイル"→"設定を名前を付けて保存"でiniファイルに保存可能。
ただしこれには現在開いているタブの情報は含まれず、タブの状態は"ファイル"→"タブの状態を名前を付けて保存"でiniファイルに保存する。これらはそれぞれ、Save:"設定用iniファイルのパス", ChangeTab:Save "タブ用iniファイルのパス"を使用することによりランチャで実行可能。

今日の日付で開いているタブを保存する
[パス]
ChangeTab:Save %x-finder%%DateTime:yymmdd%.ini
[動作]
実行


下記のようなランチャでX-Finderを終了するようにすれば、起動時の処理で読み込んだiniファイルに設定やタブを保存することができる。

設定とタブを指定したファイルに保存してX-Finderを終了する
[パス]
Save:"C:\Program Files\X-finder\xf2.ini"
ChangeTab:Save "C:\Program Files\X-finder\xftab2.ini"
Close:Window
[動作]
実行

また、下記のように終了する代わりに別のiniファイルを読み込むようにすれば、タブや設定を切り替えながら使用することができる。

設定と開いているタブを切り替える
[パス]
Save:"C:\Program Files\X-finder\xf2.ini"
ChangeTab:Save "C:\Program Files\X-finder\xftab2.ini"
Load:"C:\Program Files\X-finder\xf1.ini"
ChangeTab:Load "C:\Program Files\X-finder\xftab1.ini"
[動作]
実行

バックグラウンドのスレッド数の設定

基本オプション→その他タブ→"スレッド数"で、アイコンの取得、サムネイルの取得、ツリーの展開等で利用するバックグラウンドのスレッド数を設定できる。

設定値の変更はX-Finderの再起動後に有効になる。CPUのコア数等、使用環境や使い方によって最適な数値は異なる。

機能の拡張 その3

コマンドプロンプトで使用するツールの登録

SW:0:を用いて動いているところを隠して実行することにより、コマンドプロンプト*1上で使用するコンソールプログラムもX-Finderの機能の一部のように活用できる。
以下では、システム標準のcopy、xcopy、ren、del、attrib等の活用に加え、ファイル管理に便利なプログラムを紹介する。

名前を変更してコピーする

ファイルのコピー用の"copy"の使用例。

ファイル名を変更してコピー
[パス]
Input:"ファイル名変更コピー","ファイル名を変更してコピー","ファイル名","%FocusedName%"
Sw:0:%ComSpec% /c copy "%Focused%" "%InputData%"
Refresh:2
[動作]
実行

フォルダ構造のコピー用の"xcopy"の使用例。

フォルダ名を変更してコピー
[パス]
ClipPath:2
Input:"フォルダ名変更コピー","フォルダ名を変更してコピー","フォルダ名","%clipboard%"
xcopy /e /k /i /o /x "%Focused%" "%InputData%"
Refresh:2
[動作]
実行
ファイルの拡張子を変更する

ファイル名変更用の"ren"の使用例。
ファイルの拡張子を変更するランチャ。システムで拡張子を表示しない設定にしていても有効。(環境変数temp1を追加設定してあることが前提)

拡張子を変更
[パス]
ClipPath:2
Set:temp1=%clipboard%
ClipPath:3
Input:"拡張子の変更","拡張子のみ変更","変更後の拡張子(.以降)を入力","%temp1%"
Sw:0:%ComSpec% /c ren %temp1% %clipboard%.%inputdata%
Refresh:2
[動作]
実行
形式や属性を指定してファイルを削除する

ファイル削除用の"del"の使用例。
指定した拡張子のファイルを現在のフォルダとそのサブフォルダから削除するランチャ。読み取り専用ファイルも強制的に削除する。

形式を指定してサブフォルダからもファイルを削除
[パス]
Input:"ファイル削除","拡張子を指定してサブフォルダからもファイルを削除","削除する拡張子を入力",""
Sw:0:%ComSpec% /c del /s /f /q *.%inputdata%
Refresh:2
[動作]
実行


拡張子と属性を指定してファイルを削除するランチャ。

形式と属性を指定してファイルを削除
[パス]
Input:"ファイル削除","拡張子と属性を指定してファイルを削除","削除する拡張子を入力",""
Set:temp1=%inputdata%
Input:"ファイル削除","削除するファイルの属性を指定","r:読専 s:システム a:アーカイブ h:隠 ("-a"は「読専は削除しない」),""
Sw:0:%ComSpec% /c del /q /a:%inputdata% *.%temp1%
Refresh:2
[動作]
実行
属性を変更する

環境変数の項を参照。

ファイルのリストを作成する

選択アイテムのパスを X-Finderをインストールしたフォルダのpath.txtに書き込むランチャ。

選択アイテムのパスをテキストに書き込み
[パス]
SW:0:%ComSpec% /q /c ( for %I in ( %Selected% ) do echo %I ) >> %X-Finder%path.txt
[動作]
実行
ファイルの概要を変更する

bafgyksnここのPart6-734で入手)を使用すれば、ファイルのプロパティの概要タブに表示される情報を取得or書き換えることが可能。
(ただし、メディアファイルにはbafgyksnから編集しても反映されない項目があるので注意)

選択したアイテムのコメントに「重要」と書き込む
[パス]
Foreach:Sw:0:%ComSpec% /c echo 重要| ..bafgyksn -w -n comments "%Variable%"
[動作]
実行
クリップボードの文字列を選択したアイテムのコメントに書き込む
[パス]
Foreach:Sw:0:%ComSpec% /c echo %clipboard%| ..bafgyksn -w -n comments "%Variable%"
[動作]
実行
外部プログラムの更新を行う

頻繁にアップデートをしているソフトの上書き更新を行うランチャ。exeのみ解凍・上書きしている。
書庫ファイルをソフトごとにフォルダ分けしているのが前提。

下記の例だと書庫が"C:\temp\aaa"、インストールされているのが"C:\bin\aaa"

コマンドライン版の7-zipを使用。

実行ファイルの更新をする
[パス]
0:C:\temp\aaa
Sort:-更新日時
%ComSpec% /c ..7za.exe x %focused% -oC:\bin\aaa *.exe -aoa
Close:
[動作]
実行・新規タブ

*1:コマンドプロンプトについて詳しくはこちらこちらを参照

機能の拡張 その2

ファイルやフォルダの検索

FFXFFXIIの検索速度に不満がある、あるいはより条件を細かく指定して検索したいといった場合にはFileSeekerFenrirEverything search engineといった検索専用ソフトが便利。

作成済みのインデックスから部分一致したアイテムをリストアップする

検索対象のファイルやフォルダのリスト(インデックス)をあらかじめ作成しておき、そのインデックスからアイテムを検索するので毎回HDD内を検索するよりはるかに高速な検索が可能になるというのがインデックス型検索ソフトの強み。
fenrirは、シンプルなインターフェースと非常に細かな設定を併せ持ち、ファイラから呼び出して使うのにも非常に便利なソフト。


以下のような内容をfenrir直下のcmdフォルダ内の0enter.txtに追記すればfenrirでリストアップされたフォルダをX-Finderで開くことができる。
("..XF.exe"はX-Finderのインストールされているパス)

[.\\\;
XF|..XF.exe "%P"
]


また、以下のようにChangeTabと組み合わせると開く画面を指定できる。
以下はリストアップされたファイルをX-Finderの右側画面で開く記述。

[.\\\;
XF|..XF.exe ChangeTab:Right, "%P"
]

もっとfenrirを活用したい人はこちらを参照のこと。


以下はX-Finderからfenrirを起動し、既に作成されたインデックスから検索を行う例。
fenrir.exeのパスのみを記述すると起動と共にインデックス作成が始まるので、オプションを追記して各フォルダや設定ファイルのパスを指定している。
(作業フォルダの指定ができればよいので、fenrir.exeへのショートカットのパスを記述するだけでも良い。)

fenrirを起動し作成済みのインデックスから検索
[パス]
..fenrir.exe /scanfile="scan.iniのパス" /pathfile="pathフォルダのパス" /initfile="fenrir.iniのパス" /cmddir="cmdフォルダのパス"
[動作]
実行
explorer型の検索を高速に行う

サイズや更新日時など、explorerで指定できるのと同じような条件指定ができ、尚且つ検索速度が高速なFileSeekerもX-Finderから呼び出して活用できる。
バージョン3.1.0からはファイルに含まれる文字列も検索することが可能になり、GREP検索のような使い方もできるようになった。

現在のタブのフォルダ以下を検索
[パス]
..FileSeeker.exe /notree /nosave /options:reset /start:"%Current%" /subdir:y /prompt:keyword
[動作]
実行
現在のタブのフォルダ以下で、日時を指定して検索
[パス]
Input:"fileseeker","ファイル名に含まれる文字列を指定します","",""
Set:kw=%inputdata%
Input:"fileseekerの検索オプション指定","直近の期間を指定します","1日→1d,2週→2w,3ヶ月→3m,空白→指定なし",""
Set:recent=%inputdata%
Input:"fileseekerの検索オプション指定","期間を日付で指定します","例:2009/1/1-2009/12/31,-なし→1日限定,空白→指定なし",""
Set:period=%inputdata%
Input:"fileseekerの検索オプション指定","日時の種類を指定します","更新日時→m, アクセス日時→a, 作成日時→c,空白→指定なし",""
..FileSeeker.exe /notree /nosave /options:reset /options:recent=%recent% /options:period=%period% /options:time=%inputdata% /start:"%current%" /subdir:y /kw:%kw%
[動作]
実行
現在のタブのフォルダ以下をGREP検索
[パス]
Input:"fileseeker","fileseekerでGREP検索","検索文字列を指定",""
Set:text=%inputdata%
Input:"fileseeker","GREP検索の対象","対象ファイルの文字列を指定","*.*"
..FileSeeker.exe /notree /nosave /options:reset /options:text="%text%" /start:"%Current%" /subdir:y /kw:"%Inputdata%"
[動作]
実行
ファイル名で高速な検索をする

ファイル名だけでいいのでとにかく速く検索したい人にはEverything search engineがお勧め。
以下はEverythingで現在のフォルダ以下のファイル&フォルダ名を検索するランチャ。

現在のタブのフォルダ以下を名前で検索
[パス]
..Everything.exe -filename "%current%"
[動作]
実行

実行後に検索したいワードを入力すると、候補が絞り込まれていく。

また、Everythingをインストールしたフォルダの"Everything.ini"の最後の行に以下のパスを記述すると、Everythingでの検索結果でアイテムを右クリックしたメニューの"Open path"からアイテムのフォルダをX-Finderの新規タブで開くことができる。

open_folder_path_command=$exec("..XF.exe" "$parent(%1)")
open_folder_command=$exec("..XF.exe" "%1")

追記する際はEverythingを完全に終了させること

カラムの拡張

X-Finderには以下の5つの独自カラムが存在する。

名前+
フォルダオプションの設定に関わらず拡張子まで表示する
種類+
拡張子を表示する
サイズ+
バイト単位でファイルサイズを表示する(マイコンピュータでは使用領域を表示する)
更新日時+
更新日時を秒単位まで表示する
フォルダサイズ+
フォルダの総サイズ、ファイルサイズをバイト単位で表示する

これら5つのカラムは、表示→スタイル→混在ソートにチェックをすればファイルとフォルダを区別せずに一緒にソートすることが可能

X-Finderの詳細表示のカラムは基本的にexplorer互換のため、上記以外のexplorer用の拡張もそのまま適用される。


以下では代表的なカラム拡張について記述する。

カラムツール

WinXPに対応。


追加項目

  • 拡張子
  • DOSファイル名
  • サイズ(バイト単位、プロパティで表示される単位、数字のみ)
  • フォルダの総サイズ(バイト単位、プロパティで表示される単位、数字のみ)
mp3infp

mp3やavi等のメディアファイルのタグをファイルのプロパティから編集可能にする。


追加項目

  • 音声フォーマット
  • 映像フォーマット
  • mp3タグ種別
  • AVIバージョン
  • DOSファイル名(8.3形式ファイル名)
  • 拡張子

以下はWinXPだとデフォルトで使用可能な追加項目。

  • タイトル、アーティスト、アルバムのタイトル、コメント、ジャンル、作成日、時間、トラック
Folder Size

追加項目

  • フォルダの総サイズ
  • フォルダに含まれるファイル数
  • サブフォルダ数
  • フォルダの総アイテム数
FileCountColumnProvider

追加項目

  • フォルダ直下のファイル数

機能の拡張 その1

X-Finderはビルトインコマンドの組合せで多くの機能を実現できるが、標準の機能(ビルトインコマンドで実現可能な機能)に物足りなさを感じる場合でも、コマンドラインから使用できるソフトをランチャに登録することで、それら外部ソフトをX-Finderの機能の一部のように使用することができる。

以下ではそれらの例を挙げる。

コピーや移動、削除

高機能なコピーツールとして有名なFire File Copyだが、右D&Dから使用する以外にも、様々な使用方法がある。
また、高速コピーツールとして有名なFastCopyは、コピーや移動といった使い方以外にも、大量のファイルを削除したりフォルダ同士を同期したりといった使い方も可能。
以下ではこれらによって実現できる機能と使用例を挙げる。

更新日時を比較してコピーする

通常は右D&D等で条件指定画面を起動して使用することが多いと思われるFire File Copyだが、条件が決まっていて、分割画面で1クリックでファイルをコピーしたいときに便利なランチャ。

選択したアイテムを反対画面に更新日時が新しいもののみ上書きコピー
[パス]
..FFC.exe "%selected%" /to:"%other%" /t
[動作]
実行
右クリックメニューの"貼り付け"の代替として使用

コピーをするアイテムは決まっていてもコピー先を今現在タブで開いていない、あるいはタブからコピー先を探さなくてはいけないといったときに便利なランチャ。
右クリックメニューから"貼り付け"を選ぶのと同じ感覚で使用可能。(サブフォルダではなく、タブで開いているフォルダがコピー対象になるので注意)
Fire File Copyを使用。

コピーor切り取りしたアイテムをFire File Copyで現在のフォルダに貼り付け
[パス]
..FFC.exe /cb /go! /to:"%current%" 
[動作]
実行
大量のファイルの高速削除

サブフォルダに大量のファイルがあるようなフォルダなど、通常のexplorerの削除だと処理に時間がかかりそうな場合に便利なランチャ。
FastCopyを使用。

選択したファイルやフォルダをFastCopyで削除
[パス]
..fastcopy.exe /auto_close /cmd=delete %selected%
[動作]
実行
フォルダの同期

分割画面のフォルダ同士を完全に同じ内容にしたいときに便利なランチャ。
FastCopy使用。

反対画面のフォルダを現在のフォルダにFastCopyで同期(ミラーリング
[パス]
..fastcopy.exe /auto_close /cmd=sync "%current%" /to="%other%"
[動作]
実行

ファイルの情報取得や管理

ファイルの一覧を作成する

ファイル&フォルダのリストを作成し、X-Finderで表示するランチャ。
コマンドラインから対象フォルダが指定できるFilistryを使用している。
(Filistryは設定次第でハッシュやバージョン情報、Exif情報等も一緒に出力可能)

Filistryで現在のフォルダ以下のファイルリストを作成し、XFで表示
[パス]
..Filistry.exe "%Current%" "%x-finder%list.htm"
Confirm:"確認","作成したリストをX-Finderで表示しますか?"
0:%x-finder%list.htm
[動作]
実行
重複ファイルの検索・削除

現在のタブのフォルダ以下で重複ファイルを検索するランチャ。
コマンドラインで指定したフォルダ以下で重複したファイルを高速にリストアップし、条件指定してファイルを選択、一括削除を行うため、UnDupを使用している。

UnDupで現在のフォルダ以下の重複ファイルを検索
[パス]
..UnDup.exe -S -Q "%Current%"
[動作]
実行
CRC/MD5チェック

対象ファイルのMD5ハッシュを取得してクリップボードにコピーするランチャ。
md5getを使用している。

md5getでフォーカスしたファイルのMD5ハッシュをクリップボードにコピー
[パス]
..md5get.exe /md5 "%focused%"
[動作]
実行

クリップフォルダの活用

複数のフォルダの中身を1つのタブにまとめて表示し、サイズや更新日時でソートする

常に同じフォルダ群で最新の状態を確認する

ファイルを保存するフォルダがいくつか決まっていて、それらの中身を一括でソートしたいときには、下記のようなランチャが便利。

決まったフォルダの中身をクリップフォルダにまとめて追加
[パス]
TF:Clear ClipFolder:
Select:C:\hogehoge1\
ClipFolder:
Select:c:\hogehoge2\
ClipFolder:
[動作]
送る

この例では"C:\hogehoge1"と"C:\hogehoge2"をまとめて表示している。実行するたびに内容は最新のものになるので、いくつもの場所に保存してあるファイルを整理するときなどに活用できる。

その時その時に気が向いたフォルダをまとめて表示する

中身を表示したいフォルダを1つ1つ選んでクリップフォルダの表示内容を増やしていきたいときは下記のようなランチャが便利。

フォーカス位置のフォルダの中身(又はフォーカス位置のファイル)をクリップフォルダに追加
[パス]
Select:%focused%\
ClipFolder:
[動作]
送る

クリップフォルダの中身を消したいときは"TF:Clear ClipFolder:"で。
右クリックメニューに追加して詳細ツリー等でフォルダを開きながら実行すれば、フォルダの中身を確認しながらアイテムを追加することができる。

アイテムを任意の順番で連番リネームする

D&DやCtrl+Shift+↑or↓でアイテムを並び替え、"Numbering:〜"を実行することによって元のアイテムを好きな順番に連番リネームすることができる。
実際に操作している画面はこちら。並び替えた順番どおりにリネームされているのがわかると思う。

アイテムの並び等を記録しておく作業フォルダとして使用する

エクスプローラ互換等を利用してアイテムの並び替えをしていて、アイテムの並びを保存したいというときは、以下のランチャで現在のフォルダをクリップフォルダで開き直しておくと良い。

現在のフォルダの並びをクリップフォルダに保存して開き直す
[パス]
Select:Clear
Sendkeys:Home
TF:Clear Extra:%X-finder%clipfile.ini
Select:All
Extra:%X-finder%clipfile.ini
Select:Clear
0:Extra:%X-finder%clipfile.ini
[動作]
送る

この例ではX-Finder直下のClipfile.iniにフォルダの並びが保存されているので、clipfile.iniのタブを閉じた後で再び保存された並びを開き直したいときは、"0:Extra:%X-finder%clipfile.ini"を実行する。

コピーや移動、削除のためのファイルリストとして使用する

クリップフォルダに登録されたアイテムを右クリックすると、ツールフォルダ特有の右クリックメニューではなく通常の右クリックメニューが表示される。
このメニューから"削除"を選べば登録されたアイテムの元のアイテム(実際のファイルやフォルダ)をまとめて削除することができるし、コピーや切り取りといった操作も可能。

また、アイテムを右D&Dすると通常の右ドロップメニューが表示されるので、各種拡張ツールにアイテムのパスを渡して操作することも可能。

画像やテキスト、HTML等のプレビューリストとして使用する

クリップフォルダのアイテムは、通常のアイテムと同様にプレビューをすることが可能なため、クリップフォルダを使用すれば、任意のファイルのみを連続してプレビューすることができる。・・・

フォルダツリーのルートとして表示し、ツリーをお気に入りツリーのように使用する

追加設定した通常フォルダのクリップフォルダのパスをフォルダツリーのルートに指定してツリーを表示すれば、クリップフォルダをIEのお気に入りのように使用することができる。(具体例はフォルダツリーを参照)