組織変更とかセキュリティかうんたら、さらにはファイルサーバーのディスクを交換しました、とやらで、ファイルサーバーのディレクトリ構造をごっそりと移動させることがある。フリーソフト開発秘話、目次へ
ファイルの移動については、移動するディレクトリ構造に含まれるファイルをフルパスで持ってきて、一覧から、フォルダ作成のコマンドとファイル移動のバッチファイルを作って、一度動作速度を測ってから、スケジュールを立て、周知徹底し、移動作業をするという地道な作業をやるわけである。何でDrag&Dropでやんないかって?途中何らかの原因で移動できないファイルがあると、そこから先が処理されないからである。バッチファイルにすると移動できないファイルがあっても、エラーメッセージを吐いてそれ以後のファイルでも移動処理は続行される。
そろそろ慣れた。とっくに飽きた。そこで退屈しのぎもあってやり方は都度変えている。従来はファイル移動コマンドをawkで書いていたが、今回はMS-Excelのマクロにした。awkの方が簡単だが、周囲にはawkをメンテできる人間がほとんどいないので。ついでに、移動処理後、意図したファイルが全部動いているか確認するマクロも書いた。というわけでやるこたあ終わったのだが、MS-Excel使った関係上、MS-Windowsの環境固有の処理にも目が向かうようになった。具体的にはショートカットファイルの処理である。
ショートカットを叩くと、元のファイルが呼び出され、要するにオリジナルファイルを都度階層を伝って呼び出さなくていいので便利ってことで、よく使うのであるが、フォルダ構造を移動させると、既存のショートカットがファイルを探しに行っても、そこにモノがないのだから、呼び出せない従来は「しゃーないやん。OSにカタログがないという手抜きがあかんのや」だったが、大きな組織変更が控えていたりすると、それは少しは気になる。で、「退屈しのぎに」何とかならないか調べてみた。ショートカットのリンク先を取得する、というサンプルプログラムは見つかった。Windows Scripting Hostをマクロから呼び出すらしい。そうなるとだいたいこいつらの考えそうなことは分かる。リンク先を書き換えるのはプロパティを操作しているところを逆にすればいいんだな。で、試しに書いてみる。エラーは起こらない。でもショートカットのリンク先は変わらない。むむむ・・・。あ、よく考えたらショートカットは環境変数ではなくて「ファイル」だ。つまりセーブしてやらなくてはならない。
はい完成。ただしここからが大変である。自分が使うためのモノであればこれで十分だが、あちこちで知らない人が使うことを想定している。リンク先を書き換えるときはきちんと書き換えた先にファイルがあることを確認しよう。書き換え前のファイルが残っていれば一律に書き換えるべきか悩むのでメッセージだけ出して止まろう。あれ?ファイルとフォルダの存在確認ってやり方が違うのね。結果わかりにくいけど使いやすくなった。
そしてもう一つ機能が増えた。変更前も変更後もリンク先のファイル/フォルダが見つからないというショートカットをあぶり出せるようになったのである。つまり「不要なショートカット発見」ということが同時にできるようになった。はっきり言って便利でないかい? んでもって当初は、別ソフト「ファイルリスト作成機」ってソフトで該当ディレクトリのファイル一覧を引っ張り出し、そのなかのショートカットファイルを手動で一覧に編集し、マクロ付きのMS-Excelワークシートに貼り付けてマクロ実行、を考えていたが、いろんな人が使うんだよなあ。つまりショートカット一覧もマクロで作んないといけないってことだ。
で、似たようなモノを探してますと・・・お誂え向きなのがありました。ちょこちょこ修正して、おーおー使えるでねえの。
何回か自分で使って、修正して、完成。おもしろいところあるんだよ。速度がすんごく遅いので高速化よりも、動いていることが見て分かることを優先した。つまり、記入する行の第一列にあるセルをセレクト。これも安心感を持って使っていただけるように、です。よし、これを使うとグループ全体で何百何千時間という作業を節約できる。
しかし、私もそれなりに学習はしている。結局大々的に使われることはないだろう。だってさああまりにも効果がドラマチックだと、なんで今までやってなかったんだ、と文句を言う人がいたらイヤだなと思う人がいて(ホントに文句を言う人はいないのだが、それをおそれる人は掃いて捨てたいほどいる)、なかったことになるのである。というわけで身の回りの人に使ってもらってます。なんだ、この範囲の利用であれば、ここまで気を使って作る必要、全然なかったわ。ソフト名はNifty-Serveの名ソフト「壁つながーる」からとっています。DOSのソフトなのですが、これを使いたいがためにWindows時代になってからDOSを学んだ人がいる、らしい、というぐらいの名ソフト。そうとは知らぬまま、あっさりとMS-Windowsでそれ以上のソフトを自分用に書いた友達がいて、すごかったな。飲み会の席で抽選プログラムをノートパソコン開いてさっさと書き上げたのがとても印象的だったらしく。居合わせた漫画家が腕利きプログラマのキャラクタにした、という逸話があります。なお、居合わせた時代小説家もキャラのモデルに使った・・・んですよね、先生。