Tengo un archivo por lotes que ejecuta un par de archivos ejecutables, y quiero que salga con éxito, pero detenga si el código de salida <> 0. ¿Cómo hago esto?Obtener el código de error dentro de un archivo por lotes
Respuesta
Parece que querrá el comando "If Errorlevel". Asumiendo que su ejecutable devuelve un 0 no el código de salida en caso de fallo, haces algo como:
myProgram.exe
if errorlevel 1 goto somethingbad
echo Success!
exit
:somethingbad
echo Something Bad Happened.
comprobación Errorlevel se lleva a cabo como un control mayor o igual, por lo que cualquier-0 no valor de salida se activará el salto. Por lo tanto, si necesita verificar más de un valor de salida específico, primero debe buscar el más alto.
También puede usar conditional processing symbols para hacer una simple prueba de éxito/falla. Por ejemplo:
myProgram.exe && echo Done!
imprimiría Done!
sólo si myProgram.exe
volvieron con nivel de error 0.
myProgram.exe || PAUSE
haría que el archivo por lotes para hacer una pausa si MyProgram.EXE devuelve un nivel de error distinto de cero.
Muy bueno, compacto y realmente más legible Diría que – Dlongnecker
Tengo que estar de acuerdo en que esta solución parece mucho mejor – dmportella
Así que podrías hacer: 'myProgram.exe || exit/b 1' para detener el resto de los comandos? – rakslice
- 1. Incluir un archivo por lotes en un archivo por lotes
- 2. aritmética dentro de un archivo por lotes de bucle
- 3. Catch un error dentro de un archivo por lotes (7-zip)
- 4. Error al ejecutar el archivo por lotes Mysql
- 5. nivel de error de prueba de archivo por lotes
- 6. Incrustar VBScript dentro del archivo por lotes de Windows
- 7. Cómo obtener un archivo por lotes .bat continúe en la siguiente declaración si hay un error
- 8. Codificación de archivo por lotes
- 9. Ejecutando rake desde el archivo por lotes
- 10. ¿Cómo escapar de las variables con paréntesis dentro de if-clause en un archivo por lotes?
- 11. ejecutar un archivo por lotes desde C#
- 12. ¿Cómo obtener un archivo de proceso por lotes para manejar espacios en nombres de archivo?
- 13. Verificación ortográfica de código fuente por lotes
- 14. Ejecute el archivo por lotes como un servicio de Windows
- 15. Ejecución por lotes de herramientas de cobertura de código VS
- 16. Prueba del atributo de archivo en el archivo por lotes
- 17. Archivo por lotes para ejecutar un comando en cmd dentro de un directorio
- 18. ¿Cuánto demora ejecutar un archivo por lotes?
- 19. Control de psftp en un archivo por lotes de Windows
- 20. Dentro de un archivo por lotes, ¿cómo puedo saber si se está ejecutando un proceso?
- 21. Iniciar varias aplicaciones de consola desde un archivo por lotes
- 22. enviando correo desde el archivo por lotes
- 23. Ejecutando vbscript desde el archivo por lotes
- 24. variables de archivo por lotes inicializados en un bucle for
- 25. Ejecutar archivo por lotes en el fondo
- 26. Crear un archivo por lotes con el comando "IF"
- 27. archivo por lotes de Windows: Pipe destruye mi código de retorno
- 28. ¿Cómo puedo comprobar el tamaño de un archivo en un archivo por lotes de Windows?
- 29. Recibe el nombre de archivo por lotes para el bucle
- 30. ¿Cómo protejo las comillas en un archivo por lotes?
Además, dado que alrededor de Windows 2000, hay una variable de entorno "virtual" llamada '% ERRORLEVEL%' que se puede probar con '==', 'EQU',' LSS', etc. –
¡Perfecto! Gracias. – Dlongnecker
Oh, para la posteridad, para que se detenga en caso de error, después de: algo malo, use un comando de "pausa" – Dlongnecker