中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » call的多重引用符的特征?何解
作者:
标题: call的多重引用符的特征?何解 上一主题 | 下一主题
komafd2
初级用户




积分 53
发帖 20
注册 2007-6-8
状态 离线
『楼 主』:  call的多重引用符的特征?何解

刚刚看了一个帖子,讲的是call能调用什么
http://www.cn-dos.net/forum/view ... p;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了,这里实在是不解

2008-3-16 17:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
komafd2
初级用户




积分 53
发帖 20
注册 2007-6-8
状态 离线
『第 2 楼』:  

不好意思,发错地方了,请斑竹帮我移动到dos疑难板块。实在抱歉

2008-3-16 17:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: