标题: [原创] 批处理goto标签与目标标签分隔符 [打印本页]
作者: qzwqzw 时间: 2012-3-21 12:11 标题: 批处理goto标签与目标标签分隔符
- @echo off
- echo.goto标签与目标标签引导符测试:
- echo.
- echo. cmd处理goto传来的源标签时
- echo. 会先忽略前导的所有空格、等号、逗号、分号,
- echo. 然后会再忽略前导的一个冒号或加号(如果有的话),直到遇到合法的标签字符
- echo.
- echo. cmd处理要跳转的目标标签时
- echo. 会先忽略前导的所有空格、等号、逗号、分号,直到遇到冒号
- echo. 然后会再次忽略其后的所有空格、等号、逗号、分号,直到遇到合法的标签字符
- echo.
- echo.开始goto...
- goto 标签1
- echo 无法跳转到标签1.
-
- :标签1
- echo. 到达标签1.
- pause
- goto ,=;:标签2
- echo 无法跳转到标签2.
-
- : 标签2
- echo. 到达标签2.
- pause
- goto;;;===,,, +标签3
- echo 无法跳转到标签3.
-
- ;;;==:==;;;标签3
- echo. 到达标签3.
- pause
-
- goto :eof
复制代码
作者: qzwqzw 时间: 2012-3-21 12:51
本帖最后由 qzwqzw 于 2012-3-21 14:36 编辑
- @echo off
- echo.goto标签与目标标签结束符测试:
- echo.
- echo. cmd将加号、冒号、回车、换行、TAB、空格作为两种标签的公用的结束符
- echo,
- echo. cmd处理goto源标签时,已经预先脱去了^& ^| ^< ^> ^( ^) 等符号
- echo. 此时还会以等号、分号、逗号作为结束符
- echo.
- echo. cmd处理要跳转的目标标签时,仍然是原始的字符串
- echo. 此时还会以^&、^|、^<、^>作为结束符,除非遇到转义字符^^
- echo.
- echo.开始goto...
- goto ^<标签1^>
- echo 无法跳转到标签1.
-
- :^<标签1^>
- echo. 到达^<标签1^>.
- pause
- goto 标签^|2:被忽略的文本
- echo 无法跳转到标签2.
-
- :标签^|2:被忽略的文本
- echo. 到达标签^|2.
- pause
- goto 标签3^&L+被忽略的文本
- echo 无法跳转到标签3.
-
- :标签3^&L 被忽略的文本
- echo. 到达标签3^&L.
- pause
- goto 标签4=;,=;,被忽略的文本
- echo 无法跳转到标签4.
-
- :标签4&|<>被忽略的文本
- echo. 到达标签4
- pause
复制代码
作者: cjiabing 时间: 2012-3-21 13:03
我以为没人感兴趣呢!~
比较实用的是如何实现将标签变量化。- set lable=menu
- call :menu
- pause&exit
- :%lable%
- echo;我是标签
- pause
- goto :eof
复制代码
作者: qzwqzw 时间: 2012-3-21 13:24
我也以为没人关注呢
网速太慢,抢楼失败,放弃后续
作者: CrLf 时间: 2012-3-21 15:58
本帖最后由 CrLf 于 2012-3-21 16:01 编辑
两天看到的这个帖子也和标签的预处理相关,顺手发个链接以便横向参考:
http://bbs.bathome.net/viewthread.php?tid=15680
作者: CrLf 时间: 2012-3-21 16:06
call 也无法传递 &、|、<、> 等特殊字符, goto 的规则是否与 call 通用呢?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |