batファイルで、そのファイル自身のパスを取得する

社内SNSで得たネタだが家から見れないのでこちらにも。


Windowsバッチファイルで、そのbatファイル自身が存在するパスを取得したいことがよくあります。

%~dp0

なんじゃこれというかんじですが、

> cd /d %~dp0


とやれば、そのbatファイル自身が存在するディレクトリを
カレントディレクトリにできます。

修飾子一覧

修飾子  意味
f フルパス名(ファイル名含む)
d ドライブ文字だけ(C:など)
p パス名だけ(ファイル名除く)
n ファイル名だけ(.より前)
x 拡張子だけ(.なんとか)
s nまたはxと一緒に使って短いファイル名形式または拡張子に(そのファイルが存在する必要あり)
$変数: 変数をディレクトリリストとして、パラメータで指定したファイルを探して最初に一致したフルパス