更改批处理文件中批处理参数的位置。
Syntax
shift [/n <N>]
Parameters
| Parameter | Description |
|---|---|
/n <N> |
指定从 第 N个参数开始移动,其中 N 是 0 到 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 个以上的参数,则在第十个 (%9) 之后出现的参数将一次一个地转移到 %9中。
shift 命令对批处理参数没有%*影响。
没有向后 移位 命令。 实现 shift 命令后,无法恢复 batch 参数 (%0) 在 shift 之前存在。
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