フォルダ内のファイル名を一括置換する方法

フォルダ内のファイル名を一括置換する方法を上司に教えてもらいました。忘れないようにメモしておこうと思います。
これを読んでる方もよかったら参考にしてください。

以下のようなフォルダのfileを一括で大文字にするという例で説明します。

ファイル群フォルダ
ファイル群フォルダの中身
ファイル群フォルダ2の中身


1. パスの全取得

まず、全ファイルのパスを取得します。
対象のフォルダでターミナルを開きます。

対象のフォルダをShiftを押しながら右クリック→ターミナルで開く

もし、コマンドプロンプトでなく、パワーシェルが開いた場合は、cmd と入力してEnterキーを押します。

次に、以下のコマンドで、ファイルパスをすべて取得します。

for /r %i in (*) do echo %i

以下入力例です。


PS C:\Users\coop\Desktop\ファイル群> cmd
Microsoft Windows [Version 10.0.19045.5198]
(c) Microsoft Corporation. All rights reserved.

C:\Users\coop\Desktop\ファイル群>for /r %i in (*) do echo %i

C:\Users\coop\Desktop\ファイル群>echo C:\Users\coop\Desktop\ファイル群\file1.txt
C:\Users\coop\Desktop\ファイル群\file1.txt

C:\Users\coop\Desktop\ファイル群>echo C:\Users\coop\Desktop\ファイル群\file10.txt
C:\Users\coop\Desktop\ファイル群\file10.txt

・・・・・・・・
・・・・・・・・


C:\Users\coop\Desktop\ファイル群>echo C:\Users\coop\Desktop\ファイル群\ファイル群2\file7.txt
C:\Users\coop\Desktop\ファイル群\ファイル群2\file7.txt

C:\Users\coop\Desktop\ファイル群>echo C:\Users\coop\Desktop\ファイル群\ファイル群2\file8.txt
C:\Users\coop\Desktop\ファイル群\ファイル群2\file8.txt

C:\Users\coop\Desktop\ファイル群>echo C:\Users\coop\Desktop\ファイル群\ファイル群2\file9.txt
C:\Users\coop\Desktop\ファイル群\ファイル群2\file9.txt

出力されたパスをサクラエディタに貼り付けます。
※サクラエディタをインストールしていない人は、以下のサイトからダウンロードしてください。
サクラエディタ

Ctrl+Rを押して、置換でいらない行を削除します。

echoの行を削除 (置換対象を行削除に)
空行を削除(置換対象を行削除に)

残ったパスはエクセルB列に貼り付けます。

2. 変換後のファイル一覧を作成

以下の正規表現で、パスのフォルダ部分を削除します。

^.+\\
パスのフォルダ部分を削除

これでファイル名のみになりました。これを変更したいファイル名に置換します。

今回は、ファイル名のアルファベットを大文字にしたいので、以下の正規表現で置換します。

置換前
^(.+)(?=\.)(.*)
置換後
\U$1\L$2
ファイル名のアルファベットを大文字に

ファイル群をエクセルC列に貼り付けます。

3. ファイル名を置換する

最後にファイル名をコマンドで置換していきます。

Aセルにrenameと入力します。A、B、C列をコピーしてサクラエディタにペーストします。

タブ区切りをスペースに変換します。
※置換後は何もないように見えますが、半角スペースが入っています。

置換前
\t
置換後
 

これでコマンドが完成しました。
後はこのコマンドをすべてコピーし、コマンドプロンプトを開きます。

ショートカット「Win+R」から「cmd」と入力してEnterを押すとコマンドプロンプトが開けます。

コピーしたコマンドをペーストしてください。

C:\Users\coop>rename C:\Users\coop\Desktop\ファイル群\file1.txt FILE1.txt

C:\Users\coop>rename C:\Users\coop\Desktop\ファイル群\file10.txt FILE10.txt

C:\Users\coop>rename C:\Users\coop\Desktop\ファイル群\file2.txt FILE2.txt

・・・・・・・・・・・
・・・・・・・・・・・
・・・・・・・・・・・

C:\Users\coop>rename C:\Users\coop\Desktop\ファイル群\ファイル群2\file7.txt FILE7.txt

C:\Users\coop>rename C:\Users\coop\Desktop\ファイル群\ファイル群2\file8.txt FILE8.txt

C:\Users\coop>rename C:\Users\coop\Desktop\ファイル群\ファイル群2\file9.txt FILE9.txt

フォルダ内を確認してみると、ファイル名が置換されています。


ファイル群フォルダの中身
ファイル群2フォルダの中身

終わりに

最初は手順が長く感じるかもしれませんが、慣れると5分ほどでできます。
また、今回はいろいろなところで正規表現を使いました。正規表現は覚えておくと役に立つ機会が多いように感じます。
私は以下の本で勉強しました。マンガで読みやすく、おすすめです。

いいなと思ったら応援しよう!