Ver Mensaje Individual
  #15  
Viejo 09/04/12, 22:00:12
Array

[xs_avatar]
intronauta intronauta no está en línea
Monguer.
· Votos compra/venta: (1)
 
Fecha de registro: ago 2009
Mensajes: 5,345
Tu operador: Pepephone

 Cita: Originalmente Escrito por jrsoft Ver Mensaje
Otra cosa, la linea 90 para establecer el nombre del archivo de backup.... casi que queda más curiosa si cambias esto:

Código:
SET FILE=-f %WW%\Back_up.back
Por esto otro:

Código:
:: variables al iniciar el script
set Any=%Date:~8%
set Mes=%Date:~3,2%
set Dia=%Date:~0,2%
set Dig=%Time:~0,1%
IF "%Dig%"==" " (
set Hor=0%Time:~1,1%
set Min=%Time:~3,2%
) ELSE (
set Hor=%Time:~0,2%
set Min=%Time:~3,2%
)

::nombre del archivo con fecha y hora
SET FILE=-f %WW%\Backup_%Dia%%Mes%%Any%_%Hor%%Min%.back
(sacado de mi programilla de cocina de uso propio para Windows)
 Cita: Originalmente Escrito por jrsoft Ver Mensaje
Ya por ultimo, el bloque final lo dejaría así de momento:

Código:
:EXE
CLS
title [!] Reiniciando adb server...
adb kill-server
adb start-server
echo %HEADER%
echo .
title [!] Acepta la solicitud en tu terminal para iniciar el proceso.
IF '%V1%' == 'backup' (echo [!] Puedes introducir un password si quieres encriptar los datos)
echo [!] Depende de la opcion y la cantidad de datos puede durar desde unos 
echo minutos hasta una o varias hora. Se paciente...
echo .
title [!] Realizando backup, espera por favor...
echo adb %V1% %V2% %FILE%
adb %V1% %V2% %FILE%
echo Finalizado

:FIN
adb kill-server
EXIT /b 0
Se colocan un par de avisos en la barra de titulo para asegurarse de que todo el mundo los puede ver siempre. Con el comando exit del final, cuando se crea el archivo directamente se cierra la pantalla y a otra cosa, así no es necesario ir tanteando para saber cuando se termina (cerrando la sesión de adb, que si no luego da error al cabo del rato).
Lo de "exist" ya lo tenía solucionado pero lo de poner fecha y hora en el nombre de archivo lo dejé por imposible, muchas gracias tío! . por cierto, la sintaxis de ese tip es diabólica! XD

Ya está resubido.

Ahora al menos ya son prácticamente iguales ambos scripts

Hacía milenios que no hacía nada en DOS batch, la verdad es que es bastante sencillo si recuerdas los comandos, y para cosas sencillas como esta es más fácil que bourne-bash shell, aunque menos flexible.

Una cosa que prefiero no incluir en tu propuesta de "exist" es que cree la ruta si no existe. De hecho, el comando de adb backup ya crea las rutas si no existen. Cuando empecé a probar en windows, como las rutas en consola, "las reales". son en inglés me volví loco porque me creaba la ruta c:\usuarios\intronauta\escritorio y claro, no veía el backup por ningún lado ya que debía ser c:\Users\intronauta\Desktop (o todo en minúsculas) , así que prefiero que la ruta final ya exista, así el usuario tiene el control de la ruta final y no perderá de vista la localización del backup por fallar en la sintaxis.

El único problema que me queda por resolver en el batch es que en linux es muy sencillo diferenciar entre que detecte si existe una carpeta o un archivo. Cuando hacemos un backup, exist cumple perfectamente porque el proceso nos pide una ruta a una carpeta y comprueba que existe esa ruta. Pero en el restore, cuando nos pide la ruta completa incluyendo el nombre del archivo del backup, si pones c: te lo acepta porque la ruta existe, que es lo único que hace exist, comprobar que una ruta es válida.
¿hay algúna variante de exist que diferencie entre comprobar que existe una carpeta y un archivo? una opción sería hacerlo en dos preguntas, una a la ruta y otra del nombre del archivo backup y luego comprobar, pero me gustaría hacerlo todo del tirón ¿es posible?

Por eso el comando de salida EXIT o la autosalida no me gusta mucho, porque cuando da error no te da tiempo a ver qué pasó (como lo de poner en el restore la ruta c: , tarda un segundo en cerrarse, o que no se encuentra adb, adb out of date, etc,...). Así que prefiero un pause y luego matar el adb, que no sabía que daba errores si se mantiene abierto en windows. En el proceso incluí lo de reiniciar el server solo porque cuando hacía pruebas y a base de interrumpir el proceso terminaba quedándose tonto, así que me hacía la vida más fácil reiniciarlo por defecto. Al final lo dejé por garantizar el proceso, ya que cuando se quedaba "tonto", como el proceso no lanza mensajes de progreso (por ejemplo al hacer un restore), te puedes tirar horas hasta darte cuenta de que ni había empezado.
__________________
________
[CWMODIN] Flashea y personaliza ODIN stock roms desde el recovery http://ow.ly/kbEwt
[Universal Flasher Tool] Flashea temas metamorph y archivos desde el recovery con autobackup http://goo.gl/Gxucm

Última edición por intronauta Día 09/04/12 a las 22:26:03.
Responder Con Cita