batファイルでパスを取得する

こんばんは。きわさです。

batファイルで本体のパスや引数のパスを取得する方法です。
下記が記載されたbatファイルに、別フォルダからファイルをドラッグして実行してみます。

@echo off
echo %0
echo %~0
echo %~d0
echo %~p0
echo %~n0
echo %~x0
echo %~t0
echo %~z0
echo %~dpnx0
echo %1
echo %~1
echo %~d1
echo %~p1
echo %~n1
echo %~x1
echo %~t1
echo %~z1
echo %~dpnx1
pause

実行結果はこちら

"C:\Work\bat\test.bat"
C:\Work\bat\test.bat
C:
\Work\bat\
test
.bat
2017/12/21 20:21
272
C:\Work\bat\test.bat
"C:\Work\text\test.txt"
C:\Work\text\test.txt
C:
\Work\text\
test
.txt
2017/12/10 20:00
12027
C:\Work\text\test.txt
続行するには何かキーを押してください

batファイル本体は %0、ドラッグしたファイルは %1 でパスを取得しています。
%0 : ダブルクォーテーション付きフルパス
%~0 : フルパス
%~d0 : ドライブパス
%~p0 : ドライブとファイル名を抜いたパス
%~n0 : 拡張子なしファイル名
%~x0 : 拡張子
%~t0 : 更新日
%~z0 : ファイルサイズ
%~dpnx0 : フルパス(%~d0 + %~p0 + %~n0 + %~x0)
%1も同様です。

スポンサーリンク