こんばんは。きわさです。
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も同様です。