中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-04 22:57
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 调用的区别 查看 782 回复 5
楼 主 调用的区别 发表于 2007-06-16 15:32 ·  中国 江苏 苏州 联通
初级用户
积分 98
发帖 34
注册 2007-03-09 08:18
19年会员
UID 81178
性别 男
状态 离线
我们在系统中写批处理时经常会调用另外的一程序,比如要调用C:\a.exe有三种方法
1:call c:\a.exe
2:start c:\a.exe
3: c:\
a.exe
他们都能顺利执行a.exe,那么请问他们之间有什么区别呢?谢谢
2 发表于 2007-06-16 22:12 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
1、call 可以除了调用外部程序外,还可以调用内部命令,比如 call echo hello,world.

2、call c:\a.exe 和 c:\a.exe 在批处理中运行时,会等待这个程序运行完,然后再回到当前批处理脚本,而 start c:\a.exe 启动了 C:\a.exe 之后,马上回到批处理脚本,继续执行下面的命令,它启动 c:\a.exe 这个程序之后,它的任务就完成了。如果 start 加上 /wait 参数,应该和上面两个的效果差不多。

多动手练习就回发现他们细微的区别和联系。
3 发表于 2007-06-17 08:05 ·  中国 江苏 苏州 电信
初级用户
积分 98
发帖 34
注册 2007-03-09 08:18
19年会员
UID 81178
性别 男
状态 离线
谢谢楼主的答案。
不过我还有问题想请都楼主,我有一个程序,当我当独运行它时每次都很正常,但是当我在系统启动项里加个批处理调用它时却经常出现不能正常执行的错误,我用的是call,请问楼主要怎样解决才会比较好呢?谢谢
4 发表于 2007-06-17 11:39 ·  中国 安徽 合肥 电信
中级用户
★★
积分 334
发帖 154
注册 2007-03-24 02:14
19年会员
UID 82713
性别 男
状态 离线
我也了解一下,谢谢版主。
5 发表于 2007-06-17 13:24 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Re w909525:

这要看你的批处理的具体内容来推断了。

ps 我不是楼主,楼主是你自己。
6 发表于 2007-06-17 13:34 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
call的时候注意路径……当前路径不是按CALL 的P所在,而是当前命令提示符环境的目录。
论坛跳转: