オペレーションミスはつきものというが、やってしまった後はなんとも悔しい限り。ホストのバージョンアップに伴い事前作業として、あるデータファイルを作成した。プログラミングやある作業を集中して行っている時は、小さな一時ファイルをたくさん作ってしまう。ソース、オブジェクト、実行ファイル、テストデータ等、等。ある程度目途のついたところでこれらの作業ファイルを削除しにかかる。この時、こつこつと作り上げたホストに使う大事なファイルをDELしてしまったというわけ。あっと気がついた時は、DOSの冷たいプロンプトがもう既にでている。
まぁ、自分の身からでた何とかといってしまえばそれまでだが、ここで、UNDELを使うことを考えた。しかし、UNDEL の仕様を読むとどうもうまくいきそうにない。そこで、NOMORE (アスキー発売のツールソフト)をかけてみたが、出来上がった数MバイトのファイルからDELした元のファイルの部分を探すのはこれまた不可能、結局、無くしたファイルを取り戻すことは諦めることにした。
しかし、この時の悔しさがずっと頭にこびりつき、二度と失敗しない方法がないものかと考えた。こまめにバックアップするのが最善かも知れないが、そんな悠長な方法は、三日坊主の私にできっこない。そこで考えたのが、まず削除するファイルを特定のディレクトリに複写し、その後に消すようなコマンドを作ろうということだ。これならバッチファイルで簡単にできる。
CDEL.BAT(Copy & DELete) または SDEL.BAT(Save & DELete) COPY %1 \DUST <-- ゴミバコ ノ ツモリ DEL %1 注:これは不完全なプログラムです。考え方を示しただ けです。まねしてこのまま使わないように)
さて、めざとい人(UNIX LIKE の TOOL にたけた人など)ならもっといい方法があることに気づいたと思う。
何もわざわざコピーして、削除しなくたって mv コマンド一発で方がつくというわけだ。そこで、色々と試してみたが、この mv にも問題があった。最初の内はいいのだが、同名のファイルを、作っては削除を繰り返すと、「移動先に同名のファイルあり」とエラー表示して何もしてくれない。結局のところ、先に書いた方法に落ちつくわけだが、ディレクトリを丸毎削除しようとした時ちょっと面倒だ、DEL の「よろしいですか<Y/N>?」に応答するのも面倒。というわけで、cpと rm をうまく組み合わせたという次第。
ところがどっこい習慣というものは恐い。CDEL FOO.C とやるべきところ、ついうっかりと DEL FOO.C とタイピングしてしまう。完全を期すには COMMAND.COMから DEL コマンドを外さないとダメだ。DEL の使えない COMMAND.COM でもいざとなればファイルは消せる。何のことはない、ERASE を使えばいいのだから、というわけで COMMAND.COM 内部のコマンドテーブルから DEL の単語をつぶしてしまった。かくして、私のハードディスクの中に DEL.BAT なる通常なら実行されっこないファイルが、でんと居座ったというお話しでした。
パソコンをいじっくっている時の楽しさって、実はこんなところにあるのだなと悔しいながらもしみじみ感じてしまいました。