Programming Field

DOS コマンド一覧

Shift

バッチプログラムにおいて、パラメーター「%0」~「%9」を一つずつ小さい方に番号をずらします(「%1」→「%0」、…、「%9」→「%8」、(使用不可の10番目の引数)→「%9」)。

構文

Shift

パラメーターはありません。

解説

バッチプログラムでは通常引数に指定された値を「%1」~「%9」の9個までは利用することが出来ますが、10番目以降の引数はそのままでは利用できません。そこで一回Shiftコマンドを利用すると、値がずれて10番目の引数が「%9」に入ります。これを繰り返すことですべての引数の値を得ることが出来ます。

なお、一度ずらすと「%0」の値はもとの「%1」に書き換わってしまうため、もとの「%0」の値は失われてしまいます。「%0」の値が必要な場合は予め別の環境変数に取っておくなどが必要です。(逆方向にシフトさせることもできません。)

サンプル (バッチファイル)
@echo off
set MYTEMP=
:check
if "%1"=="" goto final
set MYTEMP=%MYTEMP%%1,
shift
goto check
:final
echo %MYTEMP%
set MYTEMP=

バッチファイルに指定されたパラメーターを「,」でつなげて環境変数「MYTEMP」に設定するプログラムです。すべてつなげ終わったら「MYTEMP」の中身を出力して、「MYTEMP」を環境から削除しています。