ファイル名の変更
Windowsを使っていると、ファイル名を変更する機会がよくあると思う。
1個や2個なら苦にならないが、50個や100個をまとめて変更するのは大変だ。
一応エクスプローラーからの一括変更もできなくはない。
ただこの方法だと、元々付いていたファイル名は無視され新しい名前に「 ~ (1) 」のような連番がくっつく結果になる。
それでOKな場合もあるけど、もう少し細かく設定したいこともあるだろう。
選択肢として「フリーウェアを探す」「自作プログラムを組む」などいくつかあるが、今回は初心者向けの方法を考えてみた。
バッチでファイル名を一括変更
バッチというのは命令を束ねたファイルだ。
Windowsは、その前身であるMS-DOS時代からコマンド操作ができるが、その話に触れると長くなるのでここでは省略。
習うより慣れろで、まずはメモ帳を立ち上げて下記1行を入力し「!dir.bat」という名前でデスクトップに保存しよう。
dir /b > !dirout.txt
次にテスト環境の作成。
デスクトップに「テスト」というフォルダを作り、中に「abc01.txt」~「abc05.txt」の5ファイルを作成する。(中身は空でOK)
作成できたら、先ほどメモ帳で作った「!dir.bat」をその中に入れてダブルクリックで実行。
「!dirout.txt」が作られるはずだ。
ちなみにファイルの先頭に「!」を付けているのは昇順ソートした時一番上に来るからだ。その名前でなくても動作に問題はない。
それでは「!dirout.txt」を開いてみよう。
中身はこのフォルダ内のファイル名一覧。
「!」が付いていないもの(ファイル名を変えたいもの)を選んでコピーしよう。
Excelを立ち上げてB1に貼り付ける。
A1に「ren」と入力して下までコピー。
「ren」というのはrenameと同じコマンドで次のように指定する。
ren [変更前のファイル名] [変更後のファイル名]
という訳で、C列には変更後のファイル名を入れることになる。
例としてB列をそのままコピーし、C列だけを範囲選択してリボンの「検索と置換」で文字列を置き換えてみよう。
このようになる。
C列の入力方法は自由なので、置換ではなく直接文字を打ち込んでも良い。
これで準備は整ったので全て選択してコピーしよう。
再びメモ帳を立ち上げて貼り付け「!ren.bat」という名前でデスクトップに保存する。
それを先ほどのテストフォルダに移動し、ダブルクリックで実行。
全てのファイル名が「abc~」から「xyz~」に変わったはずだ。
あとは作業用のファイル(先頭に「!」が付いているもの)を削除すれば完了。
Windowsなら大抵メモ帳とExcelは入っているだろうから、覚えておけばいつでもファイル名の一括変更ができるだろう。
コマンドプロンプトならもっと簡単
実はこれらの作業はコマンドプロンプトで実行すればもっと簡単にできる。
ディレクトリを変更して「ren」をワイルドカードで実行するだけ。
cd desktop\テスト ren abc* xyz*
ただ、ワイルドカードにしても正規表現にしても、曖昧な知識で使うと思わぬ失敗をしかねない。(私には多分無理)
その点、Excelなら変更後のファイル名が目視できるし数式を用いることもできる。
例えばB列(元ファイル名)の先頭に何か付けるなら「=〇〇 & B1」とする感じだ。
拡張子を分けて扱うのもアリ。
今回の方法が実用的かと言われると微妙だけど、「こういう方法もあるんだ」という発想のきっかけになれば幸いだ。