Por que usar o start over call ao usar arquivos em lote?

5

Parece que posso usar start ou call para executar arquivos em lote, mas não tenho certeza de por que você usaria um sobre o outro. Quais são os benefícios?

    
por PeanutsMonkey 26.08.2012 / 23:37

2 respostas

11

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.

    
por 26.08.2012 / 23:46
2
C:\>start /?
Starts a separate window to run a specified program or command.

C:\>call /?
Calls one batch program from another.

A chamada não inicia uma nova janela e pode ser usada para chamar uma sub-rotina rotulada.

    
por 26.08.2012 / 23:43