test.bat
echo %0
echo %~d0
echo %~p0
echo %~d0%~p0
echo %~dp0
echo.
echo %1
echo %~1
echo.
set CurrentFolderPath=%~dp0
echo %CurrentFolderPath%
実行結果
>test.bat "a"
test.bat
C:
¥test¥folder¥
C:¥test¥folder¥
C:¥test¥folder¥
"a"
a
C:¥test¥folder¥
%0はバッチファイル(text.bat)自身を示す環境変数で、自動で設定される。「~」を付与すると環境変数(もしくは引数)のダブルクォートを除去する。(%0にはダブルクォートが含まれていない。)
「d」を付与するとドライブ名のみ、「p」を付与するとドライブ名とファイル名を除いたパス情報となる。この組み合わせでカレントフォルダのドライブ名からのフルパスを保持できる。%~d0%~p0と%~dp0は同じ結果になる。
%~dp0を環境変数に設定しておけば、バッチファイルの処理中にcdによる移動を行なっても元のパスを容易に参照することができる。