【バッチファイル】ドロップしたファイルの拡張子を一括変換するバッチファイル
概要
仕事で大量のファイルを、.txtから.csvに一括変換したかったので、ChatGPTに質問しながら作成しました。 https://gyazo.com/d1423417c9de5ecb706e34b88bdd08ef
ChatGPTとの会話ログ
ソース
code:ConvertTxtToCsv.bat
@echo off
REM ドロップされたすべてのファイルに対して処理を実行
for %%f in (%*) do (
REM 拡張子が.txtの場合に.csvに変更
if "%%~xf" == ".txt" (
ren "%%f" "%%~nf.csv"
)
)
考察
上のソースで自分が分からなかった部分を、調べました。
for %%f in (%*) do ()
%*
ドロップしたファイルのファイル名に半角スペースが含まれる場合、想定した動きにならない
自分が使う分には問題なのでスルー
%%f
バッチプログラムのforコマンド内では、%変数の代わりに%%変数を使う "%%~xf"
for変数に~xを付けると、ファイル拡張子のみを取得する
"%%~nf.csv"
for変数に~nを付けると、ファイル名のみを取得する
参考