É verdade que algumas vezes, arquivos em lote precisam de uma pausa para executar comandos corretamente?

1

O que quero dizer com isso é, por exemplo, se um arquivo deve ser movido para um diretório, e a próxima linha de código assume que o arquivo está lá e tenta abri-lo, mas o movimento não é concluído, resultando em um erro? Como a necessidade de incluir ping localhost -n 5 entre dois comandos?

    
por Daniel 05.10.2016 / 16:14

1 resposta

4

Se você usa um lote regular e não implementa START ou similar para gerar novos processos, ele aguardará o término do comando anterior antes de continuar.

O lote não avançará para o próximo comando até receber um código de saída do comando anterior. Portanto, no contexto de uma cópia de arquivo básica, ela aguardará a conclusão do comando de cópia. Você pode testemunhar isso simplesmente executando um comando Copiar no prompt de comando; não lhe dará o aviso até que seja feito a cópia.

Agora, onde você pode se deparar com problemas é quando você inicia um programa que gera novos processos que fazem o trabalho que você precisa esperar.

Por exemplo, o programa de inicialização pode sair (retornar um código de saída para o arquivo de lote, fazendo com que ele continue) antes que o novo processo iniciado termine de fazer o que você precisa antes de continuar o lote.

Nesses casos, será necessário pausar o arquivo em lotes por um período de tempo (e esperar que ele termine dentro desse período) ou usar um loop no lote para monitorar o processo a ser concluído (por exemplo: com tasklist ) antes de continuar.

    
por 05.10.2016 / 17:18