【bat】バッチファイルでフォルダ内のファイル名すべての先頭にフォルダ名を付ける方法

バッチファイルを使って、特定のフォルダ内にあるすべてのファイルの頭にそのフォルダ名を付ける方法を紹介します。この手法は、ファイルを整理する際に非常に便利です。以下の手順に従って、簡単に実現することができます。

バッチファイルの準備

まず、テキストエディタを開き、以下のコードを入力してください。このコードは、フォルダ内のすべてのファイル名の前にフォルダ名を追加するためのものです。

@echo off
setlocal enabledelayedexpansion

:: フォルダパスを取得
set "folder_path=%~dp0"
for %%F in ("%folder_path%") do set "folder_name=%%~nF"

:: フォルダ内のすべてのファイルに対して処理
for %%f in ("%folder_path%*.*") do (
    :: ファイル名を取得
    set "file_name=%%~nxf"
    
    :: 新しいファイル名を設定
    set "new_file_name=%folder_name%_!file_name!"
    
    :: ファイルのリネーム
    ren "%%f" "!new_file_name!"
)

echo すべてのファイルの頭にフォルダ名を付けました。
pause

このコードを rename_files.bat などの名前で保存してください。

バッチファイルの構造と役割

このバッチファイルは、以下の手順で動作します。

  • フォルダ名の取得: set “folder_name=%%~nF” の部分で、現在のフォルダ名を取得します。
  • ファイル名の取得とリネーム: ループ内で各ファイルの名前を取得し、フォルダ名をプレフィックスとして追加した新しい名前に変更します。
  • 処理の確認: 最後に、処理が完了したことを知らせるメッセージが表示されます。

バッチファイルの実行方法

  1. 作成したバッチファイルをリネームしたいファイルが入っているフォルダに置きます。
  2. バッチファイルをダブルクリックして実行します。
  3. フォルダ内のすべてのファイルの名前が変更されます。

注意点

  • バックアップを取る: リネーム操作は元に戻せないため、事前にファイルのバックアップを取ることをおすすめします。
  • ファイルの重複: 同じ名前のファイルが既に存在する場合、リネームに失敗することがあります。

まとめ

この記事では、実用的なバッチファイルの使用例を紹介しました。ぜひ、あなたのプロジェクトでも活用してみてください。