call
executa o script fornecido dentro da mesma instância do interpretador, portanto, ele pode ser usado apenas para arquivos em lote, mas permite que o script chamado modifique o ambiente do responsável pela chamada usando set
. No Windows NT, call
também permite que rótulos sejam chamados como sub-rotinas; por exemplo. call :foo
.
Por outro lado, start
usa a função ShellExecute (), por isso pode ser usada para abrir praticamente tudo que o próprio Windows pode abrir, incluindo documentos, outros arquivos e até URLs da Internet. start
também tem opções para abrir uma janela de console separada, para usar diferentes prioridades de processo e para executar um programa sem aguardar sua conclusão. No entanto, se você usar start
com um arquivo em lote, ele será executado em um interpretador separado e quaisquer modificações no ambiente não serão vistas pelo chamador.