コマンドプロンプト上でバッチファイルを実行する時、パラメータを指定することが出来ます。パラメータはバッチファイル中で使用できる変数のことです。パラメータを指定するにはコマンドプロンプト上で以下のように書きます。
a.bat hello bye
これはa.batというバッチファイルを実行する時にパラメータとしてhelloとbyeを指定しています。
パラメータをバッチファイル中で使用するには
置き換え可能パラメータ%0~%9 を使用します。上の例では、%1にhello、%2にbyeが入ります。%0にはバッチファイル名a.batが入ります。
必要であればパラメータはバッチファイル名を除いて(%0を除いて)9個まで(%1から%9まで)指定できます。もし%9を越えるパラメータが必要な時はshiftコマンドを使用して可能にします。
shiftコマンドは、各パラメータを直前のパラメータにコピー(%1は%0にコピー、%2は%1にコピーする)して10個目のパラメータがあれば%9にコピーするコマンドです。もし11個目のパラメータがあればそれは10個目のパラメータとなります。実行前に%0に格納されていた値は消えて二度と戻すことはできません。
以下はshiftコマンド実行前と実行後のパラメータの状態を表にして書いたものです。
≪shiftコマンド実行前と実行後のパラメータの状態≫
%0 | %1 | %2 | %3 | %4 | %5 | %6 | %7 | %8 | %9 | 10個目の引数 |
a.bat | b | c | d | d | d | e | f | g | h | i |
shiftを実行するとパラメータは以下の状態になる↓ |
b | c | d | d | d | e | f | g | h | i | |