バッチファイルの引数の情報を取得する
バッチファイルの引数(パラメータ)を取得する際には、一部の情報だけを取得することができる。
たとえば、引数の中からドライブ名だけ取得するなんてことができる。
以下のようなバッチファイルでどうなるか試してみる。
@echo off echo %%0 = %0 echo %%~0 = %~0 echo %%f0 = %f0 echo %%~f0 = %~f0 echo %%~d0 = %~d0 echo %%~p0 = %~p0 echo %%~n0 = %~n0 echo %%~x0 = %~x0 echo %%~s0 = %~s0 echo %%~a0 = %~a0 echo %%~t0 = %~t0 echo %%~z0 = %~z0 echo %%~dp0 = %~dp0 echo %%~nx0 = %~nx0 echo %%~dpnx0 = %~dpnx0 echo %%~ftza0 = %~ftza0 echo %%~pd0 = %~pd0 echo %%~aztf0 = %~aztf0 echo %%~fdpnxatz0 = %~fdpnxatz0 pause
出力結果
%0 = "E:\research\bat\parameter-test.bat" %~0 = E:\research\bat\parameter-test.bat %f0 = f0 %~f0 = E:\research\bat\parameter-test.bat %~d0 = E: %~p0 = \research\bat\ %~n0 = parameter-test %~x0 = .bat %~s0 = E:\research\bat\PARAME~1.BAT %~a0 = --a------ %~t0 = 2010/09/26 22:55 %~z0 = 417 %~dp0 = E:\research\bat\ %~nx0 = parameter-test.bat %~dpnx0 = E:\research\bat\parameter-test.bat %~ftza0 = --a------ 2010/09/26 22:55 417 E:\research\bat\parameter-test.bat %~pd0 = E:\research\bat\ %~aztf0 = --a------ 2010/09/26 22:55 417 E:\research\bat\parameter-test.bat %~fdpnxatz0 = --a------ 2010/09/26 22:55 417 E:\research\bat\parameter-test.bat
順番を入れ替えても(%~dp0でも%~pd0でも)結果は変わらないようだ。
詳細はMicrosoftのページなど参照。
http://technet.microsoft.com/ja-jp/library/cc755880%28WS.10%29.aspx
http://technet.microsoft.com/ja-jp/library/cc758944%28WS.10%29.aspx