Windowsバッチファイル実行時の引数メモ

toc目次

はじめに

Windowsバッチファイル実行時の引数メモです。

バッチファイル実行時の引数

バッチファイル実行時、%1%9には第1引数~第9引数が自動で設定されます。
また、%0にはバッチファイル自身、%*にはすべての引数が設定されます

@echo off

echo %%0 = %0
echo %%1 = %1
echo %%2 = %2
echo %%3 = %3
echo %%* = %*

pause
> sample.bat aaa bbb ccc
%0 = sample.bat
%1 = aaa
%2 = bbb
%3 = ccc
%* = aaa bbb ccc

引数(パラメーター)の置換

引数(パラメーター)は以下のオプション構文を使用できます。

修飾子 内容
%~1 引用句 (") を削除して%1を展開
%~f1 %1を完全修飾パス名に展開
%~d1 %1をドライブ文字だけに展開
%~p1 %1をパスだけに展開
%~n1 %1をファイル名だけに展開
%~x1 %1をファイル拡張子だけに展開
%~s1 %1を短いパスに展開
%~a1 %1をファイル属性に展開
%~t1 %1をファイルの日付/時刻に展開
%~z1 %1をファイルのサイズに展開

また、修飾子の組み合わせも可能です。
(例:%~dp0%0をドライブ文字とパスに展開)

@echo off

echo %%0    = %0
echo %%~0   = %~0
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

pause
> "C:\test\sample.bat"
%0    = "C:\test\sample.bat"
%~0   = C:\test\sample.bat
%~f0  = C:\test\sample.bat
%~d0  = C:
%~p0  = \test\
%~n0  = sample
%~x0  = .bat
%~s0  = C:\test\sample.bat
%~a0  = --a--------
%~t0  = 2024/02/26 12:00
%~z0  = 259
%~dp0 = C:\test\