中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 11:16
48,037 主题排行 / 350,122 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 关于shift的使用
可打印版本  953 / 3
第1楼 jkj0805 发表于 2006-11-12 02:54
新手上路 发帖 3 积分 10
关于shift的使用
:loop
if errorlevel %1 goto no_shift

:do_shift
set cdrom=%2
shift
shift
if not %1*==* goto loop //怎么理解这行代码
goto no_ramdrive
由于这个批处理有很多的参数,上面两个shift是怎么工作的,是不是第一个将%2的传到%1,第二个是%3传到%2,每次都这样。每次执行就往后面移动。
第2楼 不得不爱 发表于 2006-11-12 03:19
超级版主 发帖 2,044 积分 5,310 来自 四川南充
if not %1*==* goto loop //如果%1不是空就跳到loop
shift //更改批处理文件中可替换参数的位置。执行一次就用%2替换%1 ,%3替换%2........
第3楼 kcdsw 发表于 2006-11-12 04:05
中级用户 发帖 179 积分 404
这个实例里 出现了2个shift

第一个 把所有参数象前推了一位
第二个 也把所有的参数向前推了一位

%0 = 初始的%2
%1 = 初始的%3
%2 = 初始的%4
第4楼 不得不爱 发表于 2006-11-12 06:12
超级版主 发帖 2,044 积分 5,310 来自 四川南充
%0是不会变的!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023