中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 09:31
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » call 变量截取 查看 1,080 回复 5
楼 主 call 变量截取 发表于 2008-06-28 15:25 ·  中国 广东 汕头 电信
初级用户
积分 53
发帖 20
注册 2007-06-08 18:31
19年会员
UID 90697
性别 男
状态 离线
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 发表于 2008-06-28 19:24 ·  中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
1,不区分大小写很好理解,
2,批处理是按行执行的,所以先一直往下执行,找不到了再回头找
3,这个好理解,和第二个一样,既然按行执行,找到第一个就执行了下面的标签就失效了
3 发表于 2008-06-28 21:20 ·  中国 陕西 移动(全省通用)
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
楼主不必较真,自己实践下也可以总结出几个规律,但仅仅是自己总结的,是否经得起考验得问时间,还有大家的测试。

这几句话是测试总结出的,不是什么铁律。若要问为什么,涉及cmd解释器原理,如果懂汇编兴许也可以解释几句。

PS:以后问问题望把出处附加上,大家有个底
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
4 发表于 2008-06-28 22:34 ·  中国 广东 汕头 电信
初级用户
积分 53
发帖 20
注册 2007-06-08 18:31
19年会员
UID 90697
性别 男
状态 离线
出处就是你的 cmd 学习
^_^,我发帖之后觉得没有说明出处有些不妥
但是当时没有时间该,就关了,现在补上

也谢谢huahua0919兄,我再看看,想想
冷静是危难中最好的救生圈!
5 发表于 2008-07-15 22:43 ·  中国 广东 深圳 电信
初级用户
积分 56
发帖 28
注册 2008-07-05 16:24
18年会员
UID 121131
性别 男
状态 离线
谢谢!
6 发表于 2008-08-17 15:39 ·  中国 广西 玉林 电信
初级用户
★★
积分 108
发帖 56
注册 2008-08-11 14:42
17年会员
UID 123179
性别 男
状态 离线
写得好........
论坛跳转: