複数ファイルを対象に繰り返し処理をするバッチ(出力ファイル名かぶらない前提)

【PR】
※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。
@ECHO OFF

FOR %%i IN (%*) DO (
 CALL :SUB %%i
)
EXIT /b

:SUB
SET 設定したい環境変数があれば↓例
SET filename=%~n1 ファイル名拡張子前までを取得
SET kakuchosi=%~x1 拡張子を取得
SET dirname=%~dp0 実行するバッチファイルの格納先ディレクトリ取得
ファイルに対して実行するコマンド(出力ファイル名はかぶらないこと)↓例 %1はドラッグするファイル名を表す
%dirname%コマンド %1 %dirname%\%filename%_任意の文字列%kakuchosi%
EXIT /b
:subの部分を変更することで色々できます。

例えば以下のようにすると、同じフォルダにnkf.exeを置いて複数のUTF8/LFファイルを放り込むと、Shift_JIS/CRLFに変換して、ファイル名に_CRLFを付けたものを出力します。

:SUB
SET filename=%~n1 ファイル名拡張子前までを取得 
SET kakuchosi=%~x1 拡張子を取得 
SET dirname=%~dp0 実行するバッチファイルの格納先ディレクトリ取得 
ファイルに対して実行するコマンド(出力ファイル名はかぶらないこと)↓例 %1はドラッグするファイル名を表す 
%dirname%nkf -OLw %1 %dirname%\%filename%_CRLF%kakuchosi% 
EXIT /b