中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-20 06:15
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 大家帮我看一下这个批处理文件 查看 647 回复 4
楼 主 大家帮我看一下这个批处理文件 发表于 2006-01-31 12:56 ·  中国 福建 福州 电信
初级用户
积分 136
发帖 12
注册 2004-01-25 00:00
22年会员
UID 16055
性别 男
状态 离线
这里有一个批处理文件.对它不理解.对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

以上谢谢
2 发表于 2006-01-31 14:30 ·  中国 福建 泉州 电信
初级用户
积分 86
发帖 32
注册 2006-01-27 15:56
20年会员
UID 49579
状态 离线
本人正想学习,楼上这位兄台,能否传一个SHIFT程序给我,本人正想学习学习,谢谢。
lks205#163.com (请把#换成@)
3 发表于 2006-01-31 16:29 ·  中国 福建 福州 电信
初级用户
积分 136
发帖 12
注册 2004-01-25 00:00
22年会员
UID 16055
性别 男
状态 离线
已回复,谢谢
4 发表于 2006-01-31 18:19 ·  中国 广东 广州 白云区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
Shift的作用是把命令行参数向前推移,即 %2 变为 %3, %2 变为 %1,如此类推。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
5 奇怪!没收到,能否请楼主再发一次? 发表于 2006-01-31 20:24 ·  中国 福建 泉州 电信
初级用户
积分 86
发帖 32
注册 2006-01-27 15:56
20年会员
UID 49579
状态 离线
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

  
论坛跳转: