![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 10:25 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » call 变量截取 |
| 可打印版本 1,081 / 5 |
| 第1楼 komafd2 | 发表于 2008-06-28 15:25 |
| 初级用户 发帖 20 积分 53 | |
|
call 变量截取 call :标签 "参数1" "参数2" ...
从:开始到首次出现的空格,当作标签的结束符.(标签可作为%0参数,即标签前与后的空格将被视作参数分隔符,) call :^^^.... 将会是个空语句. 主标签中&(非^&)后的字符被当作语句执行.执行完后再跳转到副标签处. 副标签中含|&><:5个字符其中之一时,后面的字符被当作注释,将不进行任何解释. 标签字符不能为单独的<space> &()^=;%+,:|但以下特殊字符作为的标签是合法的: `, ' ,^^ , ^^& , "<space>" , " , "", @,,{,},?,/,\,*,-,$,#,~,., 当启用延迟环境变量时,!不能作为标签. 汉字,与其他扩展字符,以及混合字符也可以作为标签. 虽然不提倡用这些特殊字符作为标签,但是它们可以实现一些一般方法难以实现的脚本. 参数最多9个,再多就要借助"shift"命令(见后面) call 在跳转的标签时遵循下面规则: 1, 大小写不区分, 2, 先在call 语句后面找,后面没有再在前面找. 3, 多个相同标签时只执行找到的第一个标签. 将这三点归纳成一句话就是: ,大小写不分,先后再前,执行一次. 这段话看了几次还是不理解 这段话出自plp626 的cmd 学习 http://www.cn-dos.net/forum/viewthread.php?tid=37382 [ Last edited by komafd2 on 2008-6-28 at 10:36 PM ] |
|
| 第2楼 huahua0919 | 发表于 2008-06-28 19:24 |
| 银牌会员 发帖 780 积分 1,608 | |
|
1,不区分大小写很好理解,
2,批处理是按行执行的,所以先一直往下执行,找不到了再回头找 3,这个好理解,和第二个一样,既然按行执行,找到第一个就执行了下面的标签就失效了 |
|
| 第3楼 plp626 | 发表于 2008-06-28 21:20 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
楼主不必较真,自己实践下也可以总结出几个规律,但仅仅是自己总结的,是否经得起考验得问时间,还有大家的测试。
这几句话是测试总结出的,不是什么铁律。若要问为什么,涉及cmd解释器原理,如果懂汇编兴许也可以解释几句。 PS:以后问问题望把出处附加上,大家有个底 |
|
| 第4楼 komafd2 | 发表于 2008-06-28 22:34 |
| 初级用户 发帖 20 积分 53 | |
|
出处就是你的 cmd 学习
^_^,我发帖之后觉得没有说明出处有些不妥 但是当时没有时间该,就关了,现在补上 也谢谢huahua0919兄,我再看看,想想 |
|
| 第5楼 zhouhuang | 发表于 2008-07-15 22:43 |
| 初级用户 发帖 28 积分 56 | |
|
好 谢谢!
|
|
| 第6楼 hisplay | 发表于 2008-08-17 15:39 |
| 初级用户 发帖 56 积分 108 | |
|
写得好........
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |