バッチファイルに、ファイルをドラッグ&ドロップしてあげると、処理されるタイプのバッチファイルですね。
ざっくりと示すとこんな感じ。
@echo off
:StartProcess
if "%~1" equ "" goto EndProcess
:Process
echo Target: %~1
:NextProcess
shift
goto StartProcess
:EndProcess
:StartProcess
if "%~1" equ "" goto EndProcess
:Process
echo Target: %~1
:NextProcess
shift
goto StartProcess
:EndProcess
:Process に続くところで、処理をしてあげれば OK。
サンプルとして、ECHO でファイル名を表示するようにしてあります。
重要なところ (弄るべきところ) 以外について。
:StartProcess のところでは、次のファイルがなくなったら、EndProcess にジャンプするようにしてあります。 (ないと無限ループするはず。)
さらに、特定の拡張子のファイルだけを処理してあげたい場合には、次のようにしてあげると良いかと思います。
下の例の動きとしては、「テキストファイルでなかったら、NextProcess にジャンプして、次のファイルに移る」ようになっています。
...
:StartProcess
if "%~1" equ "" goto EndProcess
:: 拡張子によって処理
if not "%~x1" equ ".txt" goto NextProcess
...
:StartProcess
if "%~1" equ "" goto EndProcess
:: 拡張子によって処理
if not "%~x1" equ ".txt" goto NextProcess
...
NextProcess では、SHIFT で、引数 (%0, %1, ..., %9) を大きい方から小さい方にシフトしています。そうしないと、同じ引数 (今回は %1) を使って、繰り返し処理を記述することができません。そして、終わったら、StartProcess にジャンプして、次のファイルを処理します。
実は、私のブログ投稿「LaTeX 関係のバッチファイルなどなどなど。 」の Replace.cmd で登場していたりします。
他にも色々とできるはずなので、使いこなしてみてください!
0 件のコメント :
コメントを投稿