como posso fazer com que meu arquivo .bat continue após um erro

22

Eu tenho um arquivo .bat no Windows que faz três coisas

cmd1 arg1 arg2
cmd2 arg3 
cmd3 arg4 arg5 arg6

Às vezes, cmd1 pode falhar e tudo bem, gostaria de continuar e executar cmd2 e cmd3. Mas meu morcego pára em cmd1. Como posso evitar isso?

Atualizar para maior clareza - estes não são outros arquivos .bat, eles são comandos exe. Espero não ter que construir uma árvore de arquivos .bat apenas para conseguir isso.

    
por ConfusedNoob 03.01.2013 / 23:16

3 respostas

14

Outra opção é usar o amperstand ( & )

cmd1 & cmd2 & cmd3

Se você usar um duplo, ele somente será executado se o comando anterior for concluído com êxito ( %ERRORLEVEL%==0 )

cmd1 && cmd2 && cmd3

Se você usar um canal duplo ( || ), ele somente executará o próximo comando se o anterior for concluído com um código de erro ( %ERRORLEVEL% NEQ 0 )

cmd1 || cmd2 || cmd3

    
por 03.01.2013 / 23:35
8

Presumindo os cmds, outros arquivos .bat empilham os comandos assim:

 call cmd1
 call cmd2
 call cmd3
    
por 03.01.2013 / 23:21
8

Isso funcionou para mim:

cmd.exe /c cmd1 arg1
cmd2
...

Isso usa cmd.exe para executar o comando em uma nova instância do interpretador de comandos do Windows, portanto, um comando com falha não interrompe o script em lote. O /c sinalizador instrui o intérprete a finalizar assim que o comando finalizar a execução.

cmd2 é executado mesmo se o primeiro comando falhar. Veja cmd /? no prompt de comando do Windows para obter mais informações.

    
por 04.12.2015 / 20:41