とりあえず半歩

学んだことを1日1個、簡単なことでも良いから記録していきたい。

実行しているバッチの存在するドライブやパス、バッチ名を得る方法

課題

バッチを実行しているフォルダパスを得たい。

その過程で実行しているバッチの存在するドライブ名や、パス、バッチ名を取得する方法を見つけたので覚えるために書く。

実行

実行環境は次のとおり。

実行しているバッチの情報は次のバッチパラメータ%0とオプションを使うことで得られる。

パラメータ(とオプション) 得られる結果
%0 実行時に指定したパス名
%~d0 ドライブ名
%~p0 ドライブを除くパス
%~n0 ファイル名(拡張子なし)
%~dpn0 フルパス

%0は実行時に指定したパス名だけど、%1%2...%9もあって、それらはバッチに渡した引数を表す。

バッチ情報を得る例

@echo off

echo %%0 : %0
echo %%~d0 : %~d0
echo %%~p0 : %~p0
echo %%~n0 : %~n0
echo %%~dpn0 : %~dpn0

上のバッチをE:\CMDTestにおいて実行すると得られる結果は次になる。

f:id:sotoattanito:20151030222210p:plain