标题: 大家帮我看一下这个批处理文件
[打印本页]
作者: 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