この記事では、特定のフォルダ内に存在する特定のファイルの拡張子を一括変更するバッチファイルを紹介します。
このバッチファイルは、この記事内のコードをメモ帳に貼り付けるだけで使えます。
バッチファイルの作成方法
このバッチファイルの作り方はシンプルです。
別の記事で紹介した「バッチファイルの作成方法」の手順3で、以下のコードをメモ帳に貼り付けるだけです。
@echo off
setlocal enabledelayedexpansion
:: V02L01
:input_source_ext
set /p "sourceExt=変更対象の拡張子の名前を入力してください "
if "!sourceExt!"=="" (
echo 拡張子名を入力してください。
echo.
goto input_source_ext
)
:input_target_ext
set /p "targetExt=変更後の拡張子の名前を入力してください "
if "!targetExt!"=="" (
echo 拡張子名を入力してください。
echo.
goto input_target_ext
)
:: 禁止文字チェック
call :checkForbiddenAll "!sourceExt!" "!targetExt!"
if !errorlevel! equ 1 (
echo.
echo 拡張子に禁止文字が含まれているため処理を終了します。
echo 再度バッチファイルを実行してください。
echo.
pause
exit /b
)
set "folder=%~dp0"
set "changedFiles=0"
:: 対象ファイルの数を事前にカウント
for %%F in ("!folder!\*.!sourceExt!") do set /a changedFiles+=1
:: 対象ファイルが存在しない場合は終了
if !changedFiles! equ 0 (
echo.
echo 指定された拡張子のファイルが見つかりません。
echo.
pause
exit /b
)
:: ファイル名の変更処理
for %%F in ("%folder%\*.%sourceExt%") do (
set "filename=%%~nF"
ren "%%F" "!filename!.%targetExt%"
)
:: 処理完了メッセージの表示
echo.
echo 処理が終了しました!
echo 名前を変更したファイルの数: !changedFiles!
echo.
pause
exit /b
:checkForbiddenAll
set "str=%~1%~2"
set "chars=/:*?^""
:: |, <, > のチェック
for %%C in ("|" "<" ">") do (
set "str2=%str%"
if "!str2!" neq "!str2:%%~C=!" (
echo 禁止文字「^%%~C」が見つかりました。
exit /b 1
)
)
:: 通常の禁止文字チェック
for /L %%i in (0,1,5) do (
set "char=!chars:~%%i,1!"
if not "!char!"=="" (
echo !str! | findstr /C:"!char!" >nul && (
echo 禁止文字「!char!」が見つかりました。
exit /b 1
)
)
)
:: \のチェック
echo %str% | find "\" >nul && (
echo 禁止文字「\」が見つかりました。
exit /b 1
)
exit /b 0
バッチファイルの名前は何でもかまいません。
拡張子変更バッチファイルの使い方
この拡張子変更バッチファイルは、以下の手順で使えます。
このバッチファイルを実行すると拡張子名が一気に変更されます。念のため、事前にバックアップをとってください。
拡張子を変更したいファイルがあるフォルダの中にバッチファイルを配置します
以下の例では、「テスト」フォルダの中にバッチファイルを置きました。

フォルダ内のファイルの拡張子(ファイル名の.よりも後半の部分)が表示されていない場合は、以下の手順で拡張子を表示させてください。
1.「Win」キーを押しながら「E」キーを押します

2.「表示」→「表示」→「ファイル拡張子」を選択します

この操作によって拡張子が表示されるようになります。
バッチファイルをダブルクリックします
最初に、目的のフォルダ内にバッチファイルを配置したことを確認してください。
意図しないフォルダ内でバッチファイルを実行すると、意図しないファイルの拡張子が変更されるので注意してください。
今回の例では、以下のように、「テスト」フォルダ内にバッチファイルを配置しました。

上のイラストのように、「テスト」フォルダの中には、テキストファイルが3つ、pngファイルが1つ、jpegファイルが1つ存在しています。
今回の例では、これらのファイルのうち、テキストファイルの拡張子である「txt」のみを「bak」に変更してみます。
上のイラストの状態で、バッチファイルをダブルクリックして実行します。
バッチファイルをダブルクリックすると、以下のメッセージがでます。

今回は、テキストファイルの拡張子を変更したいので、半角で「txt」と入力します。

上のイラストのように入力できたら、エンターキーを押します。
エンターキーを押すと、以下のイラストのように変更後の拡張子を尋ねられます。

上のイラストの状態で、変更後の拡張子を半角で入力します。

今回の例では、変更後の拡張子を「bak」としました。
この状態でエンターキーを押すと処理が始まり、以下のイラストのように、テキストファイルの拡張子(txt)のみが「bak」に変更されます。

パソコンの環境によっては、セキュリティソフトによって処理が一時的に遮断され、以下のようなメッセージ(一例です)がでる場合があります。

このような場合は、「アプリを許可する」を選んでください。
注意点
拡張子名には、\、/、:、*、?、"、<、>、| を指定しないでください。
拡張子の変更を誤ってしまった場合
今回の例では、「txt」を「bak」に変更しました。
しかし、間違ってしまうこともあるかと思います。
でも焦る必要はありません。
例えば、誤って「txt」を「bk」に変更してしまった場合は、再度バッチファイルを実行して「bk」を「bak」に変更してください。
拡張子を元に戻したい場合は、再度バッチファイルを実行して「bak」を「txt」に変更してください。

簡単ですね!
はい、是非使ってみてくださいね!

関連バッチファイル
・ファイル名を一括で変更するバッチファイルはこちら
・ファイル名の一部を一括で変更/削除するバッチファイルはこちら
・ファイル名に作成日/更新日を一括追加するバッチファイルはこちら
・・ファイルを種類ごとに自動でフォルダ分けするバッチファイルはこちら
・ファイル名の先頭/末尾の文字列を追加/削除するバッチファイルはこちら
・パソコンデータをミラーリングしてUSBメモリにバックアップするバッチファイルはこちら