美文网首页
start与call的区别

start与call的区别

作者: Sec小玖 | 来源:发表于2018-01-24 09:54 被阅读0次

1.call是从批处理程序调用另一个批处理程序,并且不终止父批处理程序(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令);而start是启动一个单独的窗口运行指定的程序或命令。

2.call命令能够调用标签,与goto命令的区别是:采用 call:label的形式(goto采用的形式是goto label,没有冒号),并且采用call调用完标签之后,会继续顺序执行后续命令,而goto则是直接跳转至标签进行执行,并顺序执行标签后的内容;start不能够调用标签。

3.调用范围不同:call主要用来进行批处理的内部调用,如call :pend 和一些dos命令的调用如call set test=2,但也可以调用其他可执行文件,而start则不能进行内部调用,但其可以执行基本上所有的外部程序,还可以执行shell,如打开文件夹start "" "%WINDIR%",安装网络打印机start "" "\\IP\Printer"等等。

4.调用方式不同:call是严格意义上而言的调用,在call另一个批处理时是在同一窗体进程里执行,而start则是执行,所以在执行另外一个批处理时是在不同的窗体进程里进行,也就是说在新开启的进程里执行,虽然start可以加入b参数,但其结果却完全不同。如我们使用call set test=2 和 start /b set test=2 看似执行的结果相同,但是我们发现后者有两个进程,而且在窗体里要执行两次exit才能退出,所以当我们使用start来执行一个批处理后最好在被调用的批处理中也加一个exit,否则无法退出被调用的批处理的dos窗体,但是使用call调用时如果在被调用的批处理中存在exit则会直接结束原始和被调用的批处理程序,这是一个非常严重的问题。建议在被调用的批处理中使用goto :eof来取代exit。

5.调用结果不同:call调用不仅可以把参数或变量传给被调用的批处理,而且被调用的批处理也可以设置参数或变量以便回传,而start只能把参数或变量传给被调用的批处理,却不能回传参数或变量,这一点实际上是第二点的延伸。另外,我们还必须注意一点:使用call调用其他批处理时,在被调用的批处理中若我们使用goto命令的时候,建议要使用与原批处理中不同的标签名来跳转,否则可能会跳转到原批处理中而不能保证完整的执行被调用批处理中的所有语句。

相关文章

  • start与call的区别

    1.call是从批处理程序调用另一个批处理程序,并且不终止父批处理程序(如果不用call而直接调用别的批处理文件,...

  • Thread的.start()与.run()的区别

    1、Thread的.start()与.run()的区别 start() start()方法启动线程,真正实现了多线...

  • 线程

    创建线程的方式 1. Thread start()与run()区别start是启动线程,start是用synchr...

  • call与apply

    首先明确一点,call与apply的作用是一样的,只是传参的形式有区别而已。 1、call与apply的区别 ap...

  • 关于jQuery

    1.库和任务的区别 框架与库之间最本质区别在于控制权:you call libs, frameworks call...

  • substr,substring,slice等字符串方法总结

    substr,substring,slice的用法与区别。 substr( start, [len] ); //...

  • JavaScript 中 apply 、call 的详解

    apply 和 call 的区别 ECMAScript 规范给所有函数都定义了 call 与 apply 两个方法...

  • 17_call和apply的区别是什么?caller和calle

    一、call和apply的区别 ECMAScript 规范给所有函数都定义了 call 与 apply 两个方法,...

  • this

    this 的值到底是什么?一次说清楚 1、apply、call 、bind的作用与区别? call、apply 调...

  • this 继承

    1.apply call bind的作用与区别 apply call bind都是用来改变函数执行的上下文,也就是...

网友评论

      本文标题:start与call的区别

      本文链接:https://www.haomeiwen.com/subject/acmyaxtx.html