batにドラッグしたファイル/フォルダを処理する~みたいなスプリクトをよく作るので、機能をまとめました。
”右クリック>送る”でもドラッグしたことと同じ動作です。
結果まとめ(基本)
ディレクトリ「C:\test」でフォルダ「123」、ファイル「ABC.txt」を「test.bat」へドロップしたときの動作。
ドラッグしたファイル・フォルダのパスが、引数としてbatファイルに渡されます。
test.bat
@echo off
echo %0
echo %1
echo %2
echo %*
pause
test.bat項目 | 説明 | 結果 |
---|---|---|
%0 | バッチファイル自身のパス | “C:\test\test.bat” |
%1 | 1つ目の引数 | C:\test\ABC.txt |
%2 | 2つ目の引数 | C:\test\123 |
~ | ||
%* | 全ての引数 (半角スペース区切り) | C:\test\ABC.txt C:\test\123 |
結果まとめ(応用)
上記の%1、%2などに文字列を追加することでフルパス以外の取得も可能です。(%*は不可)
また、これらは組み合わせて使用することもできます。
「C:\test\ABC.txt」をドラッグしたときの結果をまとめました。
項目 | 説明 | 結果 |
---|---|---|
%~1 | フルパス | C:\test\ABC.txt |
%~f1 | 完全修飾パス名 (「%~1」と同じ) | C:\test\ABC.txt |
%~d1 | ドライブレター | C: |
%~p1 | 存在するフォルダ | \test\ |
%~n1 | ファイル名 (拡張子除く) | ABC |
%~x1 | 拡張子 | .txt |
%~s1 | フルパスの短縮 (長い時のみ) | C:\test\ABC.txt |
%~a1 | 属性 | –a——– |
%~t1 | 更新日時 | 2024/06/20 08:05 |
%~z1 | サイズ | 0 |
%~dp1 | 組み合わせ | C:\test\ |
%~dpn1 | 組み合わせ | C:\test\ABC |