batch file - off - Cómo obtener un archivo por lotes.bat continúe en la siguiente declaración si hay un error
for en bat (5)
Estoy tratando de programar el cierre de mis servidores de VM en un .bat. si uno de los comandos vmware-cmd falla (como la máquina ya está apagada), me gustaría que continúe 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
Un archivo de proceso por lotes debe continuar ejecutándose, incluso si el comando anterior generó un error. Tal vez, lo que estás viendo es que el lote aborta debido a algún otro error?
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.
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.
Si llama a otro archivo por lotes, debe usar CALL batchfile.cmd
¿Has intentado usar "start (cmd)" para cada comando que estás ejecutando?