Share via


shift

變更批次參數在批次檔中的位置。

語法

shift [/n <N>]

參數

參數 描述
/n <N> 指定在第 N 個引數開始移位,而 N 是從 0 到 8 的任何值。 需要預設啟用的命令延伸模組。
/? 在命令提示字元顯示說明。

備註

  • 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 個參數,則第十個 (%9) 之後出現的參數會按照一次一個移位至 %9

  • shift 命令不會影響 %* 批次參數。

  • 沒有向後 shift 命令。 實作 shift 命令之後,您無法復原移位前存在的批次參數 (%0)。

範例

若要使用名為 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