Board logo

标题: 调用的区别 [打印本页]

作者: w909525     时间: 2007-6-16 15:32    标题: 调用的区别

我们在系统中写批处理时经常会调用另外的一程序,比如要调用C:\a.exe有三种方法
1:call c:\a.exe
2:start c:\a.exe
3: c:\
   a.exe
他们都能顺利执行a.exe,那么请问他们之间有什么区别呢?谢谢
作者: lxmxn     时间: 2007-6-16 22:12
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 参数,应该和上面两个的效果差不多。

多动手练习就回发现他们细微的区别和联系。
作者: w909525     时间: 2007-6-17 08:05
谢谢楼主的答案。
不过我还有问题想请都楼主,我有一个程序,当我当独运行它时每次都很正常,但是当我在系统启动项里加个批处理调用它时却经常出现不能正常执行的错误,我用的是call,请问楼主要怎样解决才会比较好呢?谢谢
作者: wangmeng052     时间: 2007-6-17 11:39
我也了解一下,谢谢版主。
作者: lxmxn     时间: 2007-6-17 13:24
Re w909525:

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

ps 我不是楼主,楼主是你自己。
作者: slore     时间: 2007-6-17 13:34
call的时候注意路径……当前路径不是按CALL 的P所在,而是当前命令提示符环境的目录。