转变

更改批处理文件中批处理参数的位置。

语法

shift [/n <N>]

参数

参数 说明
/n <N> 指定从第 N个参数开始移动,其中,N 是从 08的任何值。 需要默认启用的命令扩展。
/? 在命令提示符下显示帮助。

注解

  • shift 命令通过将每个 %0 参数复制到上一个参数(将 %1 的值复制到 %0、将 %2 的值复制到 %1等,从而通过 %9 更改批处理参数的值。 这对于编写对任意数量的参数执行相同作的批处理文件非常有用。

  • 如果启用了命令扩展,shift 命令支持 /n 命令行选项。 /n 选项指定在 Nth 参数处开始移动,其中 N 是 0 到 8 的任何值。 例如,SHIFT /2 会将 %3 转移到 %2%4%3等,使 %0%1 不受影响。 默认情况下,命令扩展处于启用状态。

  • 可以使用 shift 命令创建可以接受 10 多个批处理参数的批处理文件。 如果在命令行上指定了 10 多个参数,则第十个(%9)之后出现的参数将逐个移动到 %9

  • 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