为什么在使用批处理文件时使用重新调用?

Pea*_*key 7 windows batch-file

看来我可以使用startcall来执行批处理文件,但是我不确定为什么要使用一个而不是另一个。有什么好处?

use*_*686 12

call在同一个解释器实例中运行给定的脚本,因此它只能用于批处理文件,但它允许被调用的脚本使用set. 在 Windows NT 中,call还允许将标签作为子程序调用;例如call :foo

另一方面,start它使用 ShellExecute() 函数,因此它几乎可以用来打开 Windows 本身可以打开的所有内容,包括文档、其他文件,甚至 Internet URL。start还可以选择打开一个单独的控制台窗口,使用不同的进程优先级,以及在不等待程序完成的情况下运行程序。但是,如果您使用start批处理文件,它将在单独的解释器中运行,并且调用者不会看到对环境的任何修改。