![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 19:02 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » call的多重引用符的特征?何解 |
| 可打印版本 684 / 1 |
| 第1楼 komafd2 | 发表于 2008-03-16 17:43 |
| 初级用户 发帖 20 积分 53 | |
|
call的多重引用符的特征?何解 刚刚看了一个帖子,讲的是call能调用什么
http://www.cn-dos.net/forum/viewthread.php?tid=28552&fpage=1&highlight=%2Bbjsh 看了第七楼everest79的这段话 不太理解其中的cmd交互模式, for 在初始化时已将引用变量全部扩展,所以这时for内的变量已经是实际值,而不在是扩展字符,也就是静态值,针对这一特点,又出现了变量延迟,反过来说就是一种在for这种命令类型中充许动态存在的变量,而call的作用就像是在当前命令进程下建立了一个子进程,而这个子进程的变量是与当前CMD的变量缓存同步的,这样也是起到了类似延迟的作用,针对变量,call命令还有一个就是多重引用符的特征 set pri1= set test=%pri1% set pri1=999 echo %test% => out: %pri1% call echo %test% => out:999 以上例子中=>符号后的为屏幕输出,这是在CMD交互模式下的操作,因为批处理中对引用符敏感,所以需要增加多余的引用符号,这也间接证明了,call是工作在如同子进程下的一个环境中的 就我理解所谓的交互,就是打开cmd ,在命令行下的模式,对吗 还有对其中的 set pri1= set test=%pri1% set pri1=999 echo %test% => out: %pri1% call echo %test% => out:999 不太理解,我试了一下,结果跟everest79前辈一样 但是假如 set pri1=1 如果这里有定义值的话 set test=%pri1% set pri1=999 echo %test% => out: 1 call echo %test% => 1 则结果都为1了,这里实在是不解 |
|
| 第2楼 komafd2 | 发表于 2008-03-16 17:45 |
| 初级用户 发帖 20 积分 53 | |
|
不好意思,发错地方了,请斑竹帮我移动到dos疑难板块。实在抱歉
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |