移动

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

Syntax

shift [/n <N>]

Parameters

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

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