複数ファイルを対象に繰り返し処理をするバッチ(出力ファイル名かぶらない前提)
@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