拜托。自己的想法没有得到证实前请不要轻易“教”别人,不要误人子弟。- @echo off
- for /l %%i in (1,1,10) do (
- set/a n+=1
- if "%%i" == "4" goto a3
- echo,%%i%%i%%i%%i%%i%%i
- :a3
- rem 不显示
- )
- echo,循环了%n%次。
- pause
复制代码 上面这个代码for里面就有标签,它完全可以运行。所以netbenton兄的“跳转时插不进去”论是一个笑话。
只是for循环里面用标签有局限性,即在发生第一次标签跳转时for循环将终止,也就是说for循环只循环到发生标签跳转这次为止,从上面的代码就可以看出。当%%i等于4的时候也就是第4次循环的时候发生跳转,for循终止,从而继续for后面的命令。再来看下面这个代码。- @echo off
- (
- goto 1
- :3
- echo,3333333333
- goto end
- :2
- echo,2222222222
- goto 3
- :1
- echo,1111111111
- goto 2
- :end
- rem end
- )
- pause
复制代码 这个代码的跳转部分是用括号括起来的,其实它跟for的括号里面是一样的,批处理中好像叫做复合命令吧(记不太清楚了,这个不重要)。其实只要记住一点,括号形式的复合命令中使用标签跳转,标签后面不能直接跟右括号,上面这个代码中标签:end后面我加了一个rem命令,如果把这个rem命令去掉后运行则只是窗口一闪而过,这就是楼主所说的问题之所在,当然,这里不是说只能用rem命令,其它命令也是一样的,如用echo,来显示一个空行等,只要不影响原代码功能就可以了。 |