移位

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

Syntax

shift [/n <N>]

Parameters

Parameter Description
/n <N> 指定在 第 N個引數開始移動,其中 N08 之間的任何值。 需要預設啟用的命令延伸模組。
/? 在命令提示字元中顯示說明。

Remarks

  • shift 指令會透過將每個參數複製到前一個參數中來變更批次 %9%0 參數的值,方法是將 %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 命令之後,您無法復原班次之前存在的批次參數 (%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