バッチファイルでフォルダ内のファイル拡張子を変更してみた

bat bat

バッチファイルでフォルダ内のファイル拡張子を一括変更してみました。

今回はフォルダ内にあるすべてのファイルをcsvファイルからtxtファイルに変換してみました。

広告

フォルダ内の拡張子を一括変更する

以下のコマンドで実行可能です。

chcp 65001
@echo off

setlocal enabledelayedexpansion
set newext=".txt"
for %%a in (C:\hogehoge\hogehoge\*) do (
    ren "%%a" "%%~na!newext!"
    set /a count+=1
)

pause

実行結果

実行前はすべて csv でしたが、

フォルダ内の拡張子を一括変更するコマンド実行前の状態

実行後はすべて txt に変わっていることが確認できます。

フォルダ内の拡張子を一括変更するコマンド実行後の状態

特定の拡張子だけ変更したい場合

フォルダ内のすべてのファイルではなく、特定の拡張子のみを変更したい場合には以下のコマンドで実行可能です。

chcp 65001
@echo off

setlocal enabledelayedexpansion
set path="C:\hogehoge\hogehoge"
set oldext=".log"
set newext=".txt"
for %%a in ("%path%\*%oldext%") do (
    set "filename=%%~na"
    ren "%%a" "!filename!%newext%"
)

pause

今回は .log の拡張子ファイルのみを .txt の拡張子に変更します。

実行結果

実行前には .log のファイルが4つありましたが、

フォルダ内の特定の拡張子のみを一括変更するコマンド実行前の状態

実行後は4つすべてが .txt に変わり、その他の拡張子のファイルは変更していないことが確認できます。

フォルダ内の特定の拡張子のみを一括変更するコマンド実行後の状態

コメント

タイトルとURLをコピーしました