Windowsのバッチファイルでファイル名を変更する際に便利なrenameコマンド(またはren)の使い方を解説します。本記事では、基本的な構文から応用例までを詳しく紹介し、ファイル名の一括変更や特定のパターンに基づいたリネーム方法を学ぶことができます。バッチファイルの自動化に活用し、作業効率を向上させましょう。
目次
rename(ren)コマンドの基本構文
Windowsのrenameコマンドは、ファイルやフォルダの名前を変更するためのコマンドです。
基本構文
rename <旧ファイル名> <新ファイル名>
または、
ren <旧ファイル名> <新ファイル名>
使用例
ファイル名を変更する
rename oldfile.txt newfile.txt
または
ren oldfile.txt newfile.txt
このコマンドは、oldfile.txtをnewfile.txtに変更します。
フォルダ名を変更する
rename oldfolder newfolder
renameコマンドの制限と注意点
renameコマンドでは、ファイルの拡張子を変更することはできません。- ワイルドカード(
*や?)を使って複数のファイルを一括でリネームすることが可能ですが、一部のケースで動作が制限されることがあります。 renameはファイルが存在するディレクトリ内でのみ動作します。
ワイルドカードを活用したファイルの一括リネーム
すべての.txtファイルを.logに変更
ren *.txt *.log
このコマンドは、同じフォルダ内のすべての.txtファイルの拡張子を.logに変更します。
先頭文字を変更する
ren oldfile*.txt newfile*.txt
oldfile1.txt、oldfile2.txtなどをnewfile1.txt、newfile2.txtに変更します。
バッチファイルでrenameを自動化する
バッチファイルを作成すれば、複数のリネーム処理を自動化できます。
連番付きファイルのリネーム
@echo off
setlocal enabledelayedexpansion
set count=1
for %%f in (*.txt) do (
set newname=file!count!.txt
ren "%%f" "!newname!"
set /a count+=1
)
このバッチスクリプトは、現在のディレクトリ内のすべての.txtファイルをfile1.txt、file2.txtのように連番付きでリネームします。
特定の文字列を置換してリネーム
バッチファイルではrenameコマンドだけでは特定の文字列を置換できませんが、forループを使えば実現できます。
@echo off
for %%f in (*old*.txt) do (
set newname=%%f
set newname=!newname:old=new!
ren "%%f" "!newname!"
)
このスクリプトは、oldをnewに置換し、例えばoldfile.txtをnewfile.txtに変更します。
まとめ
renameコマンドはシンプルながら、ワイルドカードやforループと組み合わせることで強力なリネームツールになります。バッチファイルを活用して、効率的にファイル管理を行いましょう。
