ポメラを買ってみたら、ファイル名変更が必要だったという話を先日書きました。
2010.1.25 http://o-tsu.seesaa.net/article/139278731.html
意を決して、オーツが使っているパソコン内のファイル名をすべて変更することにしました。
ポメラにコピーするフォルダーを選び出し、それぞれに対して dir コマンドを発行して、ファイル名一覧を作りました。
フォルダーごとにサブフォルダーを含めたり含めなかったりしましたが、それは、普段、パソコンから USB にコピーするときの設定を利用しました。
次に、dir の結果を整理して、拡張子のついているものを削除しました。
ところが、ここでオーツがちょっとした失敗をやってしまいました。
エディタで、拡張子がついている(「.」がファイル名にある)ファイル名を探して、行単位で削除する(CTRL+Y)ようにしたのですが、一部に大変長い(1行で収まらない)ファイル名が含まれていたのです。ですから、「改行」までの段落単位で削除しなければならなかったのですが、ファイル名一覧(数万行)を見ているときには、そういう超長いファイル名があることに気がつかなかったのです。
次に、選んだファイル群に対して、ren コマンド群を作成するプログラムを書きました。
何回かプログラムをデバッグして、正しい ren コマンドが生成されることを確認し、最後まで実行して、完全なバッチファイルを作成しました。
できあがったバッチファイルを実行して終わりにしました。
これで、4,779 個のファイル名を「拡張子なし」から「.txt」に変更しました。
で、そのあと、パソコンの中のファイルを見ていったら、中にフォルダーとして「.txt」というのがあることに気がつきました。驚きました。
調べると、長いファイル名の切れ端が残っていて、プログラムで ren コマンドを生成するときに、「ファイル名なし」のファイルを「.txt」に変更するコマンドになってしまっていました。ren コマンドの変更するファイルの指定のところにパスが書いてあるので、結果的に、指定したフォルダーの名前が「.txt」に変わってしまっていたのです。
くわばら、くわばら。
そこで、さっそく、先ほど実行したコマンド群 4,779 行を調べ、先頭に半角空白がある「 .txt」を検索しました。すると、2例そういうのがあることがわかりました。
そのフォルダー名を元に戻して、何とか正しくなりました。
やれやれでした。
自作プログラムにも修正を加えておきました。もしかして、今後、再利用するかもしれないからです。
パソコンからコピーしたファイルをポメラで利用するにあたっては、こういう「ファイル名の変更」が必要になることがあるのですね。
まあ、済んでしまえば、忘れてもいいのでしょうが、……。
2010.1.25 http://o-tsu.seesaa.net/article/139278731.html
の記事に対するコメントで「らむ」さんから、一括で拡張子を変更するソフトを紹介していただきましたし、「98」さんからはバッチファイルでできるという有益な助言をいただきましたが、結局使わないことになりました。失礼しました。
2010年01月27日
この記事へのトラックバック
そのバッチファイルは次のバッチファイルで生成できますので、またいつかお試しください。(abcとabc.txtが共存する可能性は今回は考慮していません。)
@echo off
for /r c:\test %%f in (*.) do echo ren "%%f" "%%~nf.txt"
再度のお教え、ありがとうございます。
dir コマンドの /s のような機能がほしいなあと思っていたのですが、for の中で /r を使えば、それが実現できるということに思いが至りませんでした。
オーツは Xp を使っていますが、「cmd /?」を実行したり、「for /?」を実行したりしてみると、昔の DOS のコマンド群と大きく異なっており、Windows のこの方面の「進歩」に驚きました。