Board logo

标题: 大家帮我看一下这个批处理文件 [打印本页]

作者: oceanwind     时间: 2006-1-31 12:56    标题: 大家帮我看一下这个批处理文件

这里有一个批处理文件.对它不理解.对SHIFT以及参数不理解.
REM MYCOPY.BAT copies any number of
REM files to a directory. The command
REM is MYCOPY DIR FILES

SET TODIR=%1
:ONE
SHIFT
IF"%1"=" "GOTO TWO
COPY %1 %TODIR%
GOTO ONE
:TWO
SET TODIR=
ECHO ALL DONE

以上谢谢
作者: lks205     时间: 2006-1-31 14:30
本人正想学习,楼上这位兄台,能否传一个SHIFT程序给我,本人正想学习学习,谢谢。
lks205#163.com (请把#换成@)
作者: oceanwind     时间: 2006-1-31 16:29
已回复,谢谢
作者: JonePeng     时间: 2006-1-31 18:19
Shift的作用是把命令行参数向前推移,即 %2 变为 %3, %2 变为 %1,如此类推。
作者: lks205     时间: 2006-1-31 20:24    标题: 奇怪!没收到,能否请楼主再发一次?

SHIFT


  改变批处理程序中可替换参数的位置。

  

  语法

  
  SHIFT

  SHIFT─注解

  SHIFT命令如何工作

  SHIFT命令通过将每一个参数拷贝到前一个参数来改变可替换参数%0到%9的值。也就是%1的值被拷贝到%0,%2的值被拷贝到%1等等。此命令对用一系列参数完成同样操作的批处理文件很有用。

  

  :m567

  使用10个以上的命令行参数

  

  使用SHIFT命令还可在批处理文件中接收多于10个的命令行参数。如果指定的命令行参数超过10个,则在第10个参数(%9)之后出现的参数将依次被替换到(%9)。

  

  替换参数的恢复

  SHIFT命令不可逆。一旦执行了SHIFT命令,就不能恢复SHIFT 命令之前的第一个参数(%0)。

  

  

  SHIFT─例子

  下面的批处理文件MYCOPY.BAT说明怎样用SHIFT命令处理任意多个命令行参数,将一系列文件拷贝到一个指定的目录。使用的参数是目录名和后面的一系列文件名。

  

  @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