どうしても仕事をする気になれない時というのはあるものだ。
しかしお気楽サラリーマンの代表である植木等さんですら、タイムレコーダーだけは押していたように、何か仕事をしなけばならないのが辛いところ。
残念ながら根がまじめな私は、外に遊びに出ることもできず、仕方なく個人用ツールを作ることにした。ファイルの更新監視や存在確認のためのツールである。具体的には、指定ディレクトリの配下にあるサブディレクトリも含めた全ファイルを、パス名、ファイルサイズ、ファイル日付と共に出力するツールである。さて、個人が業務を効率化しようとして使うツールは個人用ツールなのだろうか。もちろん、この手のツールは、システム管理などという仕事をやっていれば、どこかでほしくなるものであるし、実際、vectorのWindows > ユーティリティ > ファイル管理 > ファイル一覧にもいくらか登録されている。が、自分のニーズをピッタリ満たしているわけではない。
ほしいのは、こういう機能である。要するに、自動起動できて、直接コンペアがかけられ、コンペア結果を見ただけでどこの、どのファイルが変わっているのか補足できるという使い方ができることを望んでいたわけである。
- コマンドラインから起動できる。
- ファイル名の出力順が安定している。
- おのおのの行が必要な情報を全て持っている。(UNIXのls -lR では、ディレクトリ名が別の行になってしまうので、案外使いにくい。)
あ、それとソースが公開されている、というのも要件。検証用ツールとして使うわけだから、正確性を保証するのは結局「ソースにアクセスできるか」である。そんなわけで作ってしまった。コマンドラインから起動すると標準出力に、
ファイル名(tab)パス(tab)ファイルサイズ(tab)ファイル日付が出力される。
出力順は「パス名+ファイル名」でソートされている。出力するディレクトリは引数で指定(但し、1個だけ)。引数がないと、起動ディレクトリを起点として、以下の全ファイルを出力する。
エラーメッセージは「ディレクトリの指定が違います」と「ドライブの準備ができていません」の2つ。ちゃんと標準エラー出力に書き出す。(従って、リダイレクトされない。)
ドライブ名をアルファベット1文字だけで指定してもよし、「:」をつけてもよし。引数のディレクトリ指定は最後が「¥」で終わっても終わらなくてもよし。この辺は私自身、タイプミスが多いのでかなり寛容に作っている。しかし、それなら「rootlet」というプログラム名はどうなんだという批判はあるかもしれないなあ。「root」まで打ったところで間違えてEnterキーを叩いたらどうするんだ、という懸念。でも、まあUNIX用のプログラムじゃないんだから、気がつかなかったことにしてください。ちなみにrootletとは「ひげ根」のことです。
そんなわけで、皆さん使ってください。150行程度の簡単なプログラムですが、ソース付きで前述のvectorに公開いたします。
ちなみにコンパイルするとファイルサイズはジャスト64kBでした。これならEXEファイルではなくCOMファイルにもできるぞ。ということで拡張子だけ.comに変えました。つまり「ドットコム」です。おお、ドットコムプログラム!流行遅れの私もそれなりに追いついたなあ。