次の方法で共有


シフト

バッチ ファイル内のバッチ パラメーターの位置を変更します。

Syntax

shift [/n <N>]

Parameters

Parameter Description
/n <N> N番目の引数 (N0 から 8 までの任意の値) でシフトを開始するように指定します。 既定で有効になっているコマンド拡張機能が必要です。
/? コマンド プロンプトにヘルプを表示します。

Remarks

  • shift コマンドは、各パラメータを前のパラメータにコピーすることで、%0 から %9 までのバッチパラメータの値を変更します (%1 の値は %0にコピーされ、%2 の値は %1にコピーされます。 これは、任意の数のパラメーターに対して同じ操作を実行するバッチ ファイルを記述する場合に便利です。

  • コマンド拡張が有効な場合、 shift コマンドは /n コマンド行オプションをサポートします。 /n オプションは、N 番目の引数 (N は 0 から 8 までの任意の値) でシフトを開始するように指定します。 たとえば、 SHIFT /2 を押すと、 %3を %2に、 %4%3にシフトし、 %0%1 は影響を受けません。 コマンド拡張機能は既定で有効になっています。

  • shift コマンドを使用して、10 を超えるバッチ パラメーターを受け入れることができるバッチ ファイルを作成できます。 コマンドラインで10個を超えるパラメータを指定すると、10番目(%9)以降に表示されるパラメータは、一度に1つずつ %9にシフトされます。

  • shift コマンドは、%* batch パラメーターには影響しません。

  • 後方 シフト コマンドはありません。 shift コマンドを実装した後は、シフト前に存在していたバッチ・パラメーター (%0) を回復できません。

Examples

Mycopy.batというバッチファイルを使用して、ファイルのリストを特定のディレクトリにコピーするには、次のように入力します。

@echo off
rem MYCOPY.BAT copies any number of files
rem to a directory.
rem The command uses the following syntax:
rem mycopy dir file1 file2 ...
set todir=%1
:getfile
shift
if "%1"=="" goto end
copy %1 %todir%
goto getfile
:end
set todir=
echo All done