Categories: OS

Windowsのバッチファイルで使うrenameコマンドの活用方法

Windowsのバッチファイルでファイル名を変更する際に便利なrenameコマンド(またはren)の使い方を解説します。本記事では、基本的な構文から応用例までを詳しく紹介し、ファイル名の一括変更や特定のパターンに基づいたリネーム方法を学ぶことができます。バッチファイルの自動化に活用し、作業効率を向上させましょう。

rename(ren)コマンドの基本構文

Windowsのrenameコマンドは、ファイルやフォルダの名前を変更するためのコマンドです。

基本構文

rename <旧ファイル名> <新ファイル名>

または、

ren <旧ファイル名> <新ファイル名>

使用例

ファイル名を変更する

rename oldfile.txt newfile.txt

または

ren oldfile.txt newfile.txt

このコマンドは、oldfile.txtnewfile.txtに変更します。

フォルダ名を変更する

rename oldfolder newfolder

renameコマンドの制限と注意点

  • renameコマンドでは、ファイルの拡張子を変更することはできません。
  • ワイルドカード(*?)を使って複数のファイルを一括でリネームすることが可能ですが、一部のケースで動作が制限されることがあります。
  • renameはファイルが存在するディレクトリ内でのみ動作します。

ワイルドカードを活用したファイルの一括リネーム

すべての.txtファイルを.logに変更

ren *.txt *.log

このコマンドは、同じフォルダ内のすべての.txtファイルの拡張子を.logに変更します。

先頭文字を変更する

ren oldfile*.txt newfile*.txt

oldfile1.txtoldfile2.txtなどをnewfile1.txtnewfile2.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.txtfile2.txtのように連番付きでリネームします。

特定の文字列を置換してリネーム

バッチファイルではrenameコマンドだけでは特定の文字列を置換できませんが、forループを使えば実現できます。

@echo off
for %%f in (*old*.txt) do (
    set newname=%%f
    set newname=!newname:old=new!
    ren "%%f" "!newname!"
)

このスクリプトは、oldnewに置換し、例えばoldfile.txtnewfile.txtに変更します。

まとめ

renameコマンドはシンプルながら、ワイルドカードやforループと組み合わせることで強力なリネームツールになります。バッチファイルを活用して、効率的にファイル管理を行いましょう。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。