更改批处理文件中批处理参数的位置。
语法
shift [/n <N>]
参数
参数 | 说明 |
---|---|
/n <N> |
指定从第 N个参数开始移动,其中,N 是从 0 到 8的任何值。 需要默认启用的命令扩展。 |
/? | 在命令提示符下显示帮助。 |
注解
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