it-swarm-es.tech

Cómo obtener un archivo por lotes .bat continúe con la siguiente declaración si hay un error

Estoy intentando escribir el apagado de mi VM Servidores en un .bat. Si uno de los comandos vmware-cmd falla (como dice la máquina ya está apagada), me gustaría para continuar en lugar 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

Ejecútelo dentro de otra instancia de comando con CMD /C

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

Esto debería mantener los archivos BAT originales en ejecución.

29
chakrit

Si está llamando a otro archivo por lotes, debe usar el archivo por lotes CALL. Cmd

5
kenny

¿Has intentado usar "start (cmd)" para cada comando que estás ejecutando?

3
Jen A

Podría escribir un pequeño programa que ejecute el comando y devuelva un valor (digamos -1 para un error). Este valor se puede usar en su archivo por lotes.

0
Burkhard

Un archivo por lotes debe continuar ejecutándose, incluso si el comando anterior ha generado un error. Quizás, ¿lo que está viendo es que el lote se cancela debido a algún otro error?

0
bastos.sergio