2012/11/19

リネームソフトなしで手軽にファイルを一括リネームする方法


そう頻繁にはありませんが、ほーーんのときどき、年に数度ぐらいの頻度でパソコン内のファイルを一括リネームしたくなるときがあります。

そういうときにリネームソフトを入れるのもひとつ。なのですが、そのほんの数回のためにソフトを入れとくのもあれだしなぁ、使い方を覚えるコストもあれだしなぁ、、ということで笑、そのやり方を知って以降、僕はリネームソフトなしでのファイル名一括変換をよくやります(といっても、やっぱり年に数回くらいですが・・・)。

空間の整理と同じで、パソコンの中身の整理も、いざモノ(ファイル)がどこかにいってからえんやこら探すよりも、探し物がそもそも発生しないような状況を作る、というのが第一かと思います。

秩序立ててファイル名を決めておく、というのはその第一歩かと思うのですが、今回はそれに役立つリネームの方法について。ものすごく地味ですが便利です。

使うものは、1)コマンドプロンプト、2)エクセル、3)テキストエディタの3つ。OSはWindowsです。

#01 コマンドプロンプトでファイル名一覧を作成

まず、コマンドプロンプトを開いて、一括リネームをかけたいファイルがあるフォルダに行きます。ちなみにフォルダの移動はコマンド「cd」で。


それから次のコマンドを実行して、ファイル一覧をテキストに保存します。

dir /B > filename.txt

こんな感じ。

ちなみに、「dir /B」とだけ打つとコマンドプロンプト内にそのままファイル名一覧が出力されます。「/B」というのは、ファイルごとの更新時間やサマリーを表示しないためのオプションです。


#02 エクセルでrenameコマンドを作成

01を行うとそのフォルダ内にテキストファイル(filename.txt)が作成されているので、それをエクセルで開きます。

そして、各ファイル名のひとつ右のセルにリネーム後の名前を入力していきます。


通し番号を付けたり、元のファイル名前を加工して再利用したい場合はエクセルの関数を使います。たとえば下の画像の場合なら、「test」+2桁の数字がファイル名の先頭についたファイル群を、まとめて「test」+3桁の数字にしようとしています。


ここまでできたら、左に1列挿入して、ファイル名が書かれたすべての行に「rename」と入力します。



ここまでできたら、このファイルをcsvファイルとして出力します(たとえばrenamer.csvなどと)。

#03 テキストエディタでbatファイルを作成

エクセルを閉じたら、02で作ったcsvファイルを今度はテキストエディタで開いて、半角コンマ(,)を半角空白にすべて置換します。


一斉置換が終わったら、今度は拡張子をbatとしてbatファイルとして保存(たとえば「renamer.bat」として)。

#04 バッチファイルを実行

あとは03でできたbatファイルを実行するのみ! です。batファイルの実行は、ファイルをダブルクリックすればできます。


・・・と、以上です。

とても地味ですが笑、このやり方だとエクセルの関数でできる範囲ならほぼどんなリネームでもできるので、汎用性はかなり高いです。

ちなみに、
  • うまくできるかどうか不安な場合はファイルすべてのバックアップを
  • リネーム結果をコマンドプロンプト内で確認したい場合は、04でbatファイルを実行する前にbatファイルをテキストエディタで開き、ファイルの一番下に1行追加して「pause」と入力したうえでbatファイルの実行を
することをおすすめします。

また、このやり方だとファイル名に空白がある場合うまくリネームできないので注意が必要です。

2 件のコメント:

匿名 さんのコメント...

参考になりました、有難うございます。
スペースは ? とすればrenameできるようです。

ゴトウハヤト さんのコメント...

コメントありがとうございます。
スペース、そうなんですね。使わせていただきます!