中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 12:30
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于shift的使用 查看 955 回复 3
楼 主 关于shift的使用 发表于 2006-11-12 02:54 ·  中国 江苏 无锡 江阴市 电信
新手上路
积分 10
发帖 3
注册 2006-09-24 00:25
19年会员
UID 63488
状态 离线
: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 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
if not %1*==* goto loop //如果%1不是空就跳到loop
shift //更改批处理文件中可替换参数的位置。执行一次就用%2替换%1 ,%3替换%2........
3 发表于 2006-11-12 04:05 ·  中国 北京 鹏博士BGP
中级用户
★★
积分 404
发帖 179
注册 2006-03-30 14:44
20年会员
UID 53056
状态 离线
这个实例里 出现了2个shift

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

%0 = 初始的%2
%1 = 初始的%3
%2 = 初始的%4
4 发表于 2006-11-12 06:12 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
论坛跳转: