BATファイルにドラッグ&ドロップがうまくいかなかったのは実行パスのせいだった

こんな感じのバッチファイルを書いた所…

@echo off
call ..\common.bat %1

同じフォルダに置いたファイルをdrag&dropするとうまく動くのに、
別のフォルダにあるファイルをdrag&dropするとうまく動かない。

冷静に良く見たら、バッチの実行パスが変わるんですな。
drag&dropすると、batではなくそのファイルのある場所が実行パスになってしまう。
そのため、callの参照先が違ってたというわけ。

実行パスを必ず置いてあるフォルダにしてくれれば済む話なので、
こうしたら直りました。

@echo off
rem カレントディレクトリをこのbatのあるパスにする
cd /d %~dp0
call ..\common.bat %1

要件次第ではあるけど、このcdは必ず書く癖をつけてしまったほうが
ほとんどのケースで良いのではないだろうか。少なくとも自分の場合はそう。

参考:batファイルで、そのファイル自身のパスを取得する - 砂漠の音楽