Board logo

标题: 关于shift的使用 [打印本页]

作者: jkj0805     时间: 2006-11-12 02:54    标题: 关于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,每次都这样。每次执行就往后面移动。
作者: 不得不爱     时间: 2006-11-12 03:19
if not %1*==* goto loop //如果%1不是空就跳到loop
shift   //更改批处理文件中可替换参数的位置。执行一次就用%2替换%1 ,%3替换%2........
作者: kcdsw     时间: 2006-11-12 04:05
这个实例里 出现了2个shift

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

%0 = 初始的%2
%1 = 初始的%3
%2 = 初始的%4
作者: 不得不爱     时间: 2006-11-12 06:12
%0是不会变的!