2008-09-16 24 views
18

Estoy intentando guiar el cierre de mis servidores de VM en .bat. si uno de los comandos de vmware-cmd falla (como la máquina ya está apagada), me gustaría que continúe en lugar de bombardear.Cómo obtener un archivo por lotes .bat continúe en la siguiente declaración si hay un error

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 

Respuesta

26

Ejecutar dentro de otro ejemplo de comando con CMD /C

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

Esto debe mantener los archivos BAT originales funcionando.

3

¿Ha intentado utilizar "inicio (cmd)" para cada comando que está ejecutando?

0

Puede escribir un pequeño Programa que ejecuta el comando y devuelve un valor (digamos -1 para un error). Este valor se puede usar en su archivo por lotes.

0

Un archivo de proceso por lotes debe continuar ejecutándose, incluso si el comando anterior ha generado un error. Tal vez, lo que estás viendo es que el lote aborta debido a algún otro error?

4

Si se llama a otro archivo por lotes, debe utilizar LLAMADA batchfile.cmd

+0

estaba llamando a varios archivos por lotes (query1.bat query2.bat) de un trabajo principal (morning.bat) y en cualquier momento uno de los pequeños archivos .bat alcanzan un error como "archivo no encontrado" al limpiar los registros antiguos, todo se detendría. Esto hizo el truco. +1 y gracias. –

Cuestiones relacionadas