|
コマンドプロンプト上でバッチファイルを実行する時、パラメータを指定することが出来ます。パラメータはバッチファイル中で使用できる変数のことです。パラメータを指定するにはコマンドプロンプト上で以下のように書きます。 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コマンド実行前と実行後のパラメータの状態≫
|
||||||||||||||||||||||||||||||||||||||||||||
| shiftコマンドのオプション | ||||||||||||||||||||||||||||||||||||||||||||
| /n (nには0〜8が入る) を指定すると、n番目の引数からshiftコマンドが実行されます。たとえば、 shift /2 を実行すると、%3は%2へコピー、%4は%3へコピーというようになります。実行前に%2に格納されていた値は消えて、%0と%1は実行前と実行後で変わりはありません。 ≪shiftコマンドの使い方≫ @echo off rem このバッチファイルは、任意の数のファイルを rem %1で指定したディレクトリにコピーします。 rem 次のコマンド構文を使います。 rem mycopy mydir file1 file2 ... set mydir=%1 :getfile shift if "%1"=="" goto end copy %1 %mydir% goto getfile :end set mydir= |
||||||||||||||||||||||||||||||||||||||||||||