Ribbit's works

バッチファイルでファイル名を変更する方法と具体例

記事のトップ画像

普段パソコンを使っている中で、特定のファイルのファイル名を変更する機会はたくさんあるかと思います。

また、特定の規則に合わせてファイルをまとめて変更したいケースもあるんじゃないでしょうか。

今回はコマンドプロンプトを使って、ファイル名を変更する方法を紹介します。バッチファイルも同様の記述で実現できます。

使用するコマンド

ファイル名の変更には、renameコマンドを使用します。名前の通りで覚えやすいですね。

省略されたrenコマンドもありますが、実行される処理は同じです。

1 つ目の引数として現在のファイル名、2 つ目の引数として変更したいファイル名を指定することで、ファイル名を変更することが可能です。

コマンドプロンプトから実行

マイドキュメントに保存されている「before.txt」というファイルを「after.txt」にリネームするサンプルです。

コマンドプロンプトのアイコン

コマンド プロンプト

Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2022 Ribbit's works All rights reserved.
 
C:\users\user>rename before.txt after.txt _

バッチファイルから実行

@echo off
setlocal

set FOLDER=%userprofile%\Documents\

rename %FOLDER%before.txt after.txt

endlocal
exit

まとめてリネームを行う

renameコマンドでは、1 つ目、2 つ目の引数それぞれでワイルドカードの指定が可能です。

これを利用して、複数のファイルをまとめてリネームすることができます。

少し複雑なため、いくつか例を紹介します。

コマンドプロンプトから実行

マイドキュメントの「disposable」フォルダに保存されている「before.txt」の拡張子をhtmlに変更するサンプルです。

コマンドプロンプトのアイコン

コマンド プロンプト

Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2022 Ribbit's works All rights reserved.
 
C:\users\user>rename disposable\before.txt *.html _

複数のファイルの先頭に決まった文字列を追加したい場合などは、renameコマンドだけでは解決できないため、Forループを使って実現します。

コマンドプロンプトのアイコン

コマンド プロンプト

Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2022 Ribbit's works All rights reserved.
 
C:\users\user\disposable>for %f in (*) do rename %f renamed_%f _