2010年01月27日

パソコン内のファイル名変更

 ポメラを買ってみたら、ファイル名変更が必要だったという話を先日書きました。
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」さんからはバッチファイルでできるという有益な助言をいただきましたが、結局使わないことになりました。失礼しました。
posted by オーツ at 05:19| Comment(2) | TrackBack(0) | パソコンとIT | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
具体的なファイル名を列挙したバッチファイルを作ってからリネームする方がやはり安心ですね。

そのバッチファイルは次のバッチファイルで生成できますので、またいつかお試しください。(abcとabc.txtが共存する可能性は今回は考慮していません。)

@echo off
for /r c:\test %%f in (*.) do echo ren "%%f" "%%~nf.txt"
Posted by 98 at 2010年01月27日 14:51
98 様
 再度のお教え、ありがとうございます。
 dir コマンドの /s のような機能がほしいなあと思っていたのですが、for の中で /r を使えば、それが実現できるということに思いが至りませんでした。
 オーツは Xp を使っていますが、「cmd /?」を実行したり、「for /?」を実行したりしてみると、昔の DOS のコマンド群と大きく異なっており、Windows のこの方面の「進歩」に驚きました。
Posted by オーツ at 2010年01月28日 05:46
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック