ものづくりエンジニアの徒然日記

のんびりゆるーく気になったことやメモ書き代わりに更新したい。

連番のファイル名を一括変更する方法

自分のメモ書き程度にやり方をまとめる。

まずはざっくりと方法を下記に示す。
 ①エクセルに連番のファイル名をオートフィル等を使って入力する。ここではA列とする。
 ②各ファイルに対して変更したい名称を次の列(B列)に書いていく。
  (実際は先に書いてあるもの等を使う)
 ③さらに次の列(C列)の1行目に「="ren "&A1&" "&B1」と関数を打ち込む。
 ④C列1行のセルを以下の行にコピペする。
 ⑤コマンドプロンプトを起動し、カレントディレクトリをファイルの置いてある
  ディレクトリに移動する。(cd C:\User\~ とフルパスを打てばよい)
 ⑥C列のデータのあるセルすべてをコピーしてコマンドプロンプトにペーストする。


ここからはだらだらと書いていくことにする。

そもそもファイル名の一括変更をしたいと思った理由は我々の仕事ではオシロスコープという測定器を使用するのだが、オシロスコープのデータが多くなりすぎてデータファイルの名前を手打ちで変更するのが面倒くさくなったからである。
オシロスコープのデータはほとんど画像データで取得するのだが、空のUSBに保存したときTektronix製の場合、1枚目: tek00000.bmp, 2枚目: tek00001.bmp, 3枚目: tek00002.bmp ... といった感じで連番になっていく。
これらを測定中にオシロスコープでファイル名を変更するのも面倒くさいし、一気に取り出した後で一個一個変更するのも面倒くさい。(少量であれば問題ないが100を超えるとしんどい)
人によっては連番データと内容を紐づけるテキストファイルやエクセルファイル等で管理する場合もあるが、私のポリシーとして画像データのファイル名で中身が理解できるようにしておきたいのだ。

前置きはここまでにして、ざっくりの方法と照らし合わせながら実際のやり方を解説していこう。


①エクセルに連番のファイル名をオートフィル等を使って入力する。ここではA列とする。
Tektronix製オシロスコープの測定データを例にとって、次のようなエクセルファイルの叩きを作る。
拡張子は後の処理で入れても良いが、入れておくと楽かも(?)
f:id:chunb:20200619202345p:plain


②各ファイルに対して変更したい名称を次の列(B列)に書いていく。
下の図のようにB列に変更したいファイル名を記載する。ここでは内容=ファイル名としている
f:id:chunb:20200619203838p:plain
実際には測定項目が先にあって、取得したファイル名を記録していくことが多いが・・・
(①と②の順序が逆)


③さらに次の列(C列)の1行目に「="ren "&A1&" "&B1」と関数を打ち込む。
1行目にタイトルを入れたことによりA1はA2, B1はB2に変更している。
さらに変更前も変更後も拡張子を指定する必要があるが、変更後のB列に拡張子を入れていなかったため、「&".bmp"」を最後に追加している。
f:id:chunb:20200619210701p:plain

④C列1行(ここではC列2行)のセルを以下の行にコピペする。
とりあえず、7行目までしかB列を入れてないので3行目~7行目に貼り付け
f:id:chunb:20200619210737p:plain


コマンドプロンプトを起動し、カレントディレクトリをファイルの置いてあるディレクトリに移動する。(cd C:\User\~ とフルパスを打てばよい)
◆起動画面
f:id:chunb:20200619205134p:plain

◆カレントディレクトリ移動後
f:id:chunb:20200619205324p:plain
画像の編集が雑なのはご容赦くださいw


⑥C列のデータのあるセルすべてをコピーしてコマンドプロンプトにペーストする。
Excelのこの範囲をコピー
f:id:chunb:20200619211017p:plain

コマンドプロンプトに張り付ける
f:id:chunb:20200619211327p:plain


コマンドプロンプトへの貼り付け前と貼り付け後のフォルダの中身を示す。

◆貼り付け前のフォルダの中身
f:id:chunb:20200619210412p:plain

◆貼り付け後のフォルダの中身
f:id:chunb:20200619210552p:plain

以上で、方法としては終わりであるが、結局何をしているかというと、「エクセルでコマンドプロンプトへ打ち込むコマンドを作成」しているだけである。
コマンドプロンプトの ren (rename) を使用しているが、ここでは解説しない。ググればすぐわかる。
Excelの関数についても同様。

ぶっちゃけバッチファイルとかVBAとかでやっちゃえばいいじゃんと思うけど、それらを流用するのが難しい場面が多いのでエクセルでサクッと作れる方法を備忘録に残しておきたかった。

以上。