Hola Gente del Batch!
Tengo un codigo que funciona, pero llegado el caso de que surja un error, no sabria como interceptarlo y ponerlo en el informe final, es decir en caso de un "x" error hacer como un GOTO e informarlo ya que cada vez que surje un error de todas en el resporte me dice que todo esta OK y que el BackUp se realizo correctamente.
como podria usar instrucciones IF-Then entre medio de cada backup... alguna idea aunque sea volada?
Muchas Gracias!
CODIGO:
rem Formatea, Nombre= Fecha
format V: /Q /X /V:%date% /y
rem Crear directorio de C y el comienza backup
md V:\Server\C\
C:\Backup\SNAPSHOT C: V:\Server\C\LW_C.SNA -L1500 -R -W --LogFile:C:\Backup\Logs\DriveSnapshot_$Date.log
rem Crear directorio de E y el comienza backup
md V:\Server\E
C:\Backup\SNAPSHOT E: V:\Server\E\LW_E.SNA -L1500 -R -W --LogFile:C:\Backup\Logs\DriveSnapshot_$Date.log
rem Crear directorio de F y el comienza backup
md V:\Server\F\
C:\Backup\SNAPSHOT F: V:\Server\F\LW_F.SNA -L1500 -R -W --LogFile:C:\Backup\Logs\DriveSnapshot_$Date.log --exclude:\Temp
rem Mensaje de control
E:\sys\z\Jk Z_Server_BackupDriveSnapshot
Hola, (Supongo que te refieres a esto) , fácil, prueba así... Te lo he cambiado un pokito xD bueno, si te sirve ya te lo modificas a tu gusto...
(No he podido probarlo muy bien, pero si que informa del error)
EDITO:
Mira, debido a que me está dando errores el format con el signo / y no puedo probarlo bien porque no dispongo de ninguna unidad para formatear, si no puedes etiquetar el volumen con la fecha, prueba así:
format V: /Q /X /V: %DATE:/=-%
@echo off
SET LOG=C:\Backup\Logs\DriveSnapshot_$Date.log
:INICIO
rem Formatea, Nombre= Fecha
format V: /Q /X /V:%date% /y
call :ERROR
rem Crear directorio de C y el comienza backup
md V:\Server\C\
call :ERROR
C:\Backup\SNAPSHOT C: V:\Server\C\LW_C.SNA -L1500 -R -W --LogFile:%LOG%
rem Crear directorio de E y el comienza backup
md V:\Server\E
call :ERROR
C:\Backup\SNAPSHOT E: V:\Server\E\LW_E.SNA -L1500 -R -W --LogFile:%LOG%
rem Crear directorio de F y el comienza backup
md V:\Server\F\
call :ERROR
C:\Backup\SNAPSHOT F: V:\Server\F\LW_F.SNA -L1500 -R -W --LogFile:%LOG%
rem Mensaje de control
E:\sys\z\Jk Z_Server_BackupDriveSnapshot
call :ERROR
:ERROR
IF %ERRORLEVEL% GTR 0 (
echo+ ERROR
echo Hubo un error mientras se procesaban los comandos a las %DATE%>>%LOG%
echo+ Pulse una tecla para reintentarlo...
Pause>nul
goto:INICIO
) ELSE (
goto:eof)
Gracias Pito Crazy! Che pero luego del formateado se cierra el programa....
Cuando pasa por este IF, al ver que no hay error se cierra??? (goto:eof)????
le saque el primer :ERROR despues del formateo y acorte el batch para formateo de una sola unidad y no complicarme tanto.
Cuando funcione, agrego las otras 2...
Comenzo a copiar y luego desenchufe el disco rigido... y se cerro el programa... :(
pense que iba a quedar el batch abierto anunciando algun error...
el codigo asi como esta anda bien... pero no logro que me diga q pasa si algo falla.
CODIGO:
format E: /Q /X /V:%date% /y
md e:\fs\C\
C:\SNAPSHOT C: E:\fsZEG5\C\LW_C.SNA -L1500 -R -W --LogFile:C:\DriveSnapshot_$Date.log
(call :ERROR) Lo saque... porque se cerraba despues del formateo
E:\sys\zegv\JkBackupDriveSnapshot
call :ERROR
:ERROR
IF %ERRORLEVEL% GTR 0 (
echo+ ERROR
echo Hubo un error mientras se procesaban los comandos a las %DATE%>>%LOG%
echo+ Pulse una tecla para reintentarlo...
Pause>nul
goto:INICIO
) ELSE (
goto:eof)
y una pregunta he bajado el Auto Batch Creator, y el Dr.Batcher 2.1.5, porque necesito que me marquen cuando hay errores cuando escribo :S
Gracias!
=)
No, el batch solo se debe cerrar si llega hasta el final (porque no le pusiste un pause ni nada, ni un mensaje confirmando que el batch finalizó su tarea, así que simplemente se cierra), pero no se puede cerrar debido al call... porque el goto:eof es para terminar la función del call, para que me entiendas, te lo intentaré traducir:
)ELSE(
goto:eof)=si no hay error, sal de este "call", y goto a donde estabas, y sigue con el siguiente proceso del batch.
C:\Backup\SNAPSHOT C: V:\Server\C\LW_C.SNA -L1500 -R -W --LogFile:%LOG%
¿que se supone que intentas hacer con ese comando? ¿Snapshot es un ejecutable? ¿Puede ser el que de problemas?
PD: yo he probado el batch como te lo puse, y si que me informaba del error del comando "format" :/
Bueno, ponle los "call :error" a tu batch y cambia el call por este otro, a ver si daba algún problema:
:ERROR
IF %ERRORLEVEL%==0 (
goto:eof
) ELSE (
echo+ ERROR
echo Hubo un error mientras se procesaban los comandos a las %DATE%>>%LOG%
echo+ Pulse una tecla para reintentarlo...
Pause>nul
goto:INICIO)