Como obter um arquivo em lote .bat, continue na próxima instrução se houver um erro

StackOverflow https://stackoverflow.com/questions/74267

  •  09-06-2019
  •  | 
  •  

Pergunta

Estou tentando criar um script de desligamento dos meus servidores VM em um .bat.se um dos comandos vmware-cmd falhar (como a máquina já está desligada), gostaria que ele continuasse em vez de explodir.

c:
cd "c:\Program Files\VMWare\VmWare Server"

vmware-cmd C:\VMImages\TCVMDEVSQL01\TCVMDEVSQL01.vmx suspend soft -q
vmware-cmd C:\VMImages\DevEnv\DevEnv\DevEnv.vmx suspend soft -q
vmware-cmd C:\VMImages\DevEnv\TCVMDEV02\TCVMDEV02.vmx suspend soft =q


robocopy c:\vmimages\ \\tcedilacie1tb\VMShare\DevEnvironmentBackups\ /mir /z /r:0 /w:0

vmware-cmd C:\VMImages\TCVMDEVSQL01\TCVMDEVSQL01.vmx start
vmware-cmd C:\VMImages\DevEnv\DevEnv\DevEnv.vmx start 
vmware-cmd C:\VMImages\DevEnv\TCVMDEV02\TCVMDEV02.vmx start
Foi útil?

Solução

Execute-o dentro de outra instância de comando com CMD /C

CMD /C vmware-cmd C:\...

Isso deve manter os arquivos BAT originais em execução.

Outras dicas

Se você estiver chamando outro arquivo em lote, deverá usar CALL batchfile.cmd

Você já tentou usar "start (cmd)" para cada comando que está executando?

Você poderia escrever um pequeno programa que executa o comando e retorna um valor (digamos -1 para um erro).Este valor pode então ser usado em seu arquivo em lote.

Um arquivo em lote deve continuar em execução, mesmo que o comando anterior tenha gerado um erro.Talvez o que você esteja vendo seja o cancelamento do lote devido a algum outro erro?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top