![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 15:57 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]%^"这些符号的预处理顺序? |
| 可打印版本 847 / 7 |
| 第1楼 maky1117 | 发表于 2008-11-22 22:12 |
| 初级用户 发帖 11 积分 24 | |
|
[已结]%^"这些符号的预处理顺序? 研究批处理n久,很多难题也在学习前辈的经验之后一一化解,但是还是接连不断遇到莫名其妙的怪现象,下面先上两个例子:
输出^ 输出pause123uuuuu 很搞不懂^%是代表什么意思,哪位前辈能不吝为我指点迷津?另外我很想知道cmd解释器的预处理机制,它的解释原理是怎么样一个先后顺序的,这就如瞎猜西瓜熟透了没不如切开看个一目了然。 [ Last edited by HAT on 2008-11-23 at 20:36 ] |
|
| 第2楼 tireless | 发表于 2008-11-22 22:31 |
| 银牌会员 发帖 1,122 积分 2,025 | |
echo ^%^%^%^% 我觉得是这样: 先扩展变量 %^% 和 %^%,因为没有定义变量 ^,所以就只剩下两个 ^^,最后变成一个 ^。 echo ^% 在批处理中单独的 % 符号会被“抹”掉: C:\>type test.bat ———————————————— 预处理究竟是如何进行的 http://www.cn-dos.net/forum/viewthread.php?tid=43905#pid305954 [ Last edited by tireless on 2008-11-22 at 23:30 ] |
|
| 第3楼 HAT | 发表于 2008-11-22 22:55 |
| 版主 发帖 5,017 积分 9,023 | |
|
建议在初学批处理的时候,多研究一下实用性,对于这些偏僻的内容可以在自己具备一定功底的时候再去研究。
|
|
| 第4楼 maky1117 | 发表于 2008-11-22 23:15 |
| 初级用户 发帖 11 积分 24 | |
|
谢谢版主前辈建议,只是个人比较喜欢钻点牛角尖,因为这些问题总是出其不意绊我一下,很不爽,想干脆一气把它们连根拔出,呵呵
|
|
| 第5楼 maky1117 | 发表于 2008-11-22 23:22 |
| 初级用户 发帖 11 积分 24 | |
|
忘了提示一点,就是
echo ^% pause123^% uuuuu pause 之中的每个^%后都不能有空格,否则就得不到pause123uuuuu的结果 谢谢你的解答,很受教 ![]() |
|
| 第6楼 HAT | 发表于 2008-11-22 23:26 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 5楼 这里的百分号是多余的,可全部删除。
|
|
| 第7楼 tireless | 发表于 2008-11-22 23:26 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
Re 5楼 忘了说了:
因为 ^ 将每行后的看不到的“回车符”转义了,“回车符”起不到回车作用,自然就“不换行”了。 |
|
| 第8楼 maky1117 | 发表于 2008-11-23 15:40 |
| 初级用户 发帖 11 积分 24 | |
|
明白,谢谢楼上的各位老大~~
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |