本家製(だがサポートなし)の便利ユーティリティ。Tweak UIとか(窓の手に類似)。
外部メディアに書き込んだ際など、「あるディレクトリ中に格納されているファイル(ディレクトリ)群が、他のディレクトリに格納されているものとバイナリレベルで同じか?」と思い、これを調べたくなることがある。
全bitを調査すれば完璧にわかるのだが、これだと時間がかかる。同じかそうでないかだけわかればよいなら、MD5なんかのハッシュ値の比較だけを行えば充分。良く知らないが、偶然ハッシュが同じになってしまう確率はとってもとっても小さいのだろう。
専用のツールは恐らく数多くあるのだろうが、本家が配布するFCIVなんてのもあるので、これを使って試してみる。これの機能は
なんてところのようなので、上記の様なデータ比較のために充分な機能がある。
というわけで、こういった既存のコマンドを使うと楽だろうと思ってオプションなどを調べていたが、結局プログラム自作するのが総合的な手間では最適解と思えてきてしまった。まあ折角調べたことなのでメモしておくことにする。
C:\mydata\important\{data1.txt, data2.pdf, ...} # 比較元 D:\mportant\{data1.txt, data2.pdf, ...}
なんてのを比較したいとする。パスは通ってるとする
fciv.exe c:\mydata\important -bp c:\mydata\important -r -xml my_hash.xml
をまず打つ。これでimportant以下全てのファイルのハッシュがmy_hash.xmlに保存される。ファイルの場所の情報は、(この方法だと)相対パスとなる。この時のコンソールの出力は以下な感じ。
// // File Checksum Integrity Verifier version 2.05. // Start Time: 03/08/2006 at 05h15'28'' Error loading XML document. Create New XML database End Time..: 03/08/2006 at 05h15'28'' Processed 4 directories Processed 23 files Errors have been reported to fciv.err
XMLが無いので新たに作ると言い、時刻をメモし、処理し、エラーをfciv.errに吐いたそうだ。だが実際にはfciv.errにはコマンドラインが書かれているのみだった。「エラーはありません」ということなのだと解釈しておく。ハッシュを見たいのなら
fciv -list -xml my_hash.xml
などとすればリスト表示される。
次に
fciv -v -bp d:\important -xml my_hash.xml
として比較を行う。成功すれば
// // File Checksum Integrity Verifier version 2.05. // Starting checksums verification : 03/08/2006 at 05h23'45 All files verified successfully End Verification : 03/08/2006 at 05h23'45
となり、失敗すれば
// // File Checksum Integrity Verifier version 2.05. // Starting checksums verification : 03/08/2006 at 05h24'12 List of modified files: ----------------------- data1.txt Hash is : 81d95db337a18c65384d35ba7ea2efda It should be : ee3d1c92cf3763f8f6550f0b3f3cf01d End Verification : 03/08/2006 at 05h24'12
となる。パスのオプションをミスると「指定されたパスが見つかりません」と怒濤のように言われる。
あるべきファイルが無い場合には「指定されたパスが見つかりません」と言われるが、余計なファイルが比較先にあっても黙殺されてしまうのがちょっと残念。
fciv -list -xml my_hash.xml fciv d:\important -r
とか、エクスプローラの右クリックとかでファイル名を数えたりすればOK?なんだかかっこ悪い。
fciv.exe c:\mydata\important -bp c:\mydata\important -r -xml my_hash1.xml fciv.exe d:\important -bp d:\important -r -xml my_hash2.xml
として
fciv.exe my_hash1.xml fciv.exe my_hash2.xml
の出力を比べるなりdiffするなり(あれば)する。これも何だかかっこ悪い。
まあ、致命的な欠点でもないんだから、妥協しとく。
Windowsが安定するようになってからはお世話になる事は少なくなったものの、重要なプログラムである。
PowerShellの略。以前までMonadだとかMSHとか言われていたもの。まだ正式版ではないみたいだが、@ITの記事をざっと見ると、パスの区切りがスラッシュでもいいような事が書いてある!これだけで試す価値があるのでちょっと遊んでみることにする。
Passportへのレジストが必要のようだ。.NET framework 2.0が必要なようだ。
UNIX環境を実現したくばcygwinを使えばいいっちゃいいんだが、大規模すぎるし、UNIXとWindowsではそもそも前提条件が異なるので、何かと例外ルールに惑わされて面倒。
下記は、Windowsのルールに従いつつ、なるべくUNIXライクなコマンドラインのインターフェースを充実させようとする試み関連。
CD/FDDのイメージを作ったり読んだりするにはddコマンドが便利。cygwin環境には勿論あるが、そうでないWindows用のddコマンドもある。
dd if=\\.\a: of=FloppyImage.img dd if=\\.\g: of=CDImage.iso
などとしてイメージが作れる。作ったイメージは、Daemon ToolsやらVMWareで活躍する。
また、本格的にUNIX環境の動作が欲しい時はリモートなりVMWareなり別パーティションなりに環境を用意する方がいいのかなあと考えつつ、まだ何もしていない。
あまり関係ないけど、ext2を読めるカーネルモードドライバを見つけた
キーボード指向のランチャ
「超低機能二画面ファイラ」
FD-likeなファイラでは一番好き。
こちらもFD-likeファイラ。Unicodeに対応してるのと、D&Dできる点が良い。
動作も軽快になり、洗練されてきた。
Ctrl + Tab 次のタブ Ctrl + Shift + Tab 前のタブ Ctrl + [1-9] 数字に対応するタブを選択
タブを選択した状態(マウスでタブをクリック、もしくは{URL(Ctrl+L),検索(Ctrl+K)}エディットボックスからTabキーでタブにキーボードフォーカスを移す)なら
Ctrl + -> タブ右移動 Ctrl + <- タブ左移動