it-swarm-pt.tech

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

Estou tentando fazer um script de desligamento de meus servidores VM Servidores em um .bat. Se um dos comandos vmware-cmd falhar (como a máquina já está desligada, digamos), eu gostaria para continuar em vez de bombardear.

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
19
AndyM

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.

29
chakrit

Se você estiver chamando outro arquivo de lote, deve usar CALL batch file.cmd

5
kenny

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

3
Jen A

Você poderia escrever um pequeno programa que execute o comando e retorne um valor (digamos -1 para um erro). Este valor pode então ser usado em seu Batch-File.

0
Burkhard

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 aborto do lote devido a algum outro erro?

0
bastos.sergio