Batch y Drive Snapshot Como podria capturar un codigo de error?

Iniciado por Shadow, 3 Mayo 2011, 11:15 AM

0 Miembros y 1 Visitante están viendo este tema.

Shadow

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


Sh@doW

SuperDraco

#1
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:/=-%





Código (dos) [Seleccionar]

@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)
No he vuelto, solo estoy de paso.

Shadow

#2
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!
=)
Sh@doW

SuperDraco

#3
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" :/
No he vuelto, solo estoy de paso.

SuperDraco

Bueno, ponle los "call :error" a tu batch y cambia el call por este otro, a ver si daba algún problema:

Código (dos) [Seleccionar]
: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)
No he vuelto, solo estoy de paso.