Cómo obtener un archivo por lotes .bat y continuar con la siguiente declaración si hay un error

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

  •  09-06-2019
  •  | 
  •  

Pregunta

Estoy intentando programar el apagado de mis servidores VM en un archivo .bat.Si uno de los comandos vmware-cmd falla (por ejemplo, porque la máquina ya está apagada), me gustaría que continúe en lugar de fallar.

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
¿Fue útil?

Solución

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

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

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

Otros consejos

Si está llamando a otro archivo por lotes, debe usar CALL batchfile.cmd

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

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top