Actualizaciones batch

Iniciado por ELVJop, 25 Abril 2012, 17:02 PM

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

ELVJop

Estoy haciendo un programa de muchos programas (Como ya sabreis si habeis entrado en alguno de mis muchos post) y claro mi programa tiene actualizaciones constantes he echo un setup para su correcta instalación y desisntalación. (Contiene varios archivos) y claro tener que darles un link de descarga o pasarselo por pendrive es un aburrimiento. Por eso pregunto. Supongamso que yo tengo un blogspot y que puedo subir alli perfectamente las actualizaciones constantes. Existe algun metodo para conectarme y descargar las actualizaciones sin necesidad de abrir el navegador?

PD: Para explicar mejor: Entre las opciones una que diga: Buscar actualizaciones y cuando se metan contactara con mi blogspot y entonces dependiendo de la version que diga: Hay una nueva version desea descargarla ahora? Si- No y si le da a si que empieze la descarga vaya al lugar donde esta instalado y remplaze los archivos

PD2: Me da igual si es un comando externo.
El dia 3 de mayo esta cuenta sera borrada.

Eleкtro

#1
[Batch] [Mini-Aporte] MAME Panel (Una tool para el emulador MAME)
Puedes estudiar la opción para descargar la base de trucos. Aunque no hago nada para verificar si es una versión nueva del archivo, simplemente lo descarga y lo descomprime.




Requisitos:
1º - WGET.
2º - Seguir un nombre que identifique la versión de tu programa. (Ejemplo MiProgramaXXX.exe Donde XXX es lo único que irás cambiando, La versión.)

Pasos:
1º - Descargar el body de la url.
2º - Filtrarlo con un FOR.
3º - Descargar el archivo.


Código (dos) [Seleccionar]
@Echo off

Set "Url=http://cheat.retrogames.com/"
Set "UrlFile=cheat....zip"
Set "TempFile=%TEMP%\temp.html"

WGET -q "%URL%" -O "%TempFile%"

For /F "Tokens=*" %%a in ('Type "%TempFile%" ^| Findstr "%URLFILE%"') DO (Echo %%a)
:: Eso muestra la linea (SIN FILTRAR) que contiene el enlace directo al archivo (O eso debería).
:: Como no dijiste ni que url es, ni el nombre del archivo, Tengo datos insuficientes, el resto te toca hacerlo a tí.
:: Dáme más datos y hago las comprobaciones que faltan.
pause
Exit

REM Para descargar el archivo:
:: WGET "Enlace al archivo.exe"


Salu2









ELVJop

PEro si tengo todo un bloc (una pagina) Con el link de descarga del archivo subido a google docs como lo podria hacer? Porque siempre que lo subo a mediafire o Google docs siempre me da un link distinto y eso es un problema
El dia 3 de mayo esta cuenta sera borrada.

Eleкtro

#3
Cita de: ELVJop en 25 Abril 2012, 23:01 PM
PEro si tengo todo un bloc (una pagina) Con el link de descarga del archivo subido a google docs como lo podria hacer? Porque siempre que lo subo a mediafire o Google docs siempre me da un link distinto y eso es un problema

Lo he explicado y creo haber sido claro, El link no importa donde lo subas, Usa la página de tú Blog en el code, Ahi aparecerá el link que subiste a GDocs o MF...

Si no dices la página yo no puedo hacer nada más por ayudar.

PD: Y recuerda lo de usar un nombre que se pueda identificar cada vez que lo subas.
       Si uno se llama "mi programa v1.0.exe" y luego lo subes con el nombre "nuevo programa.exe" no se puede hacer una comparación.

Salu2








ELVJop

Vale yal o entendi pero necesitaria una ayudita con los FOR ya sabes que no son mi fuerte. Supongamos Que esta es la URL real del archivo

http://doc-04-24-docs.googleusercontent.com/docs/securesc/2lk8q97dj97tkt4og77fj6faepvp9v76/6gb50r91168c5nvuuncsk093cal8dg19/1335384000000/00252332886727426968/00252332886727426968/0B1K7YRbJ40aiakZHcHZqVDFMMlk?e=download&nonce=4r2ig7rjt1f3q&user=00252332886727426968&hash=olhbh4614dmmglh1m1l1gcg8ksvf4f2r
Como lo tendria que hacer?
El dia 3 de mayo esta cuenta sera borrada.

Eleкtro

Cita de: ELVJop en 26 Abril 2012, 18:47 PM

http://doc-04-24-docs.googleusercontent.com/docs/securesc/2lk8q97dj97tkt4og77fj6faepvp9v76/6gb50r91168c5nvuuncsk093cal8dg19/1335384000000/00252332886727426968/00252332886727426968/0B1K7YRbJ40aiakZHcHZqVDFMMlk?e=download&nonce=4r2ig7rjt1f3q&user=00252332886727426968&hash=olhbh4614dmmglh1m1l1gcg8ksvf4f2r
Como lo tendria que hacer?

ELVJop, Con eso no se puede xD, Y tampoco sirve con mediafire, Que usa Flash...
Necesito la url de tu blog (Si quieres.)... y que en el blog aparezca un enlace que tenga un nombre que se pueda identificar tipo "www.mediafire.com\miprograma111.exe" o como lo hagas.

De verdad, Pienso que estoy siendo muy claro...

Salu2








ELVJop

No no ya no quiero identificar versiones. Pero eso que tu haces yo no lo puedo hacer nunca he visto ningun enlace como ese. Por mucho que estudio tu code no logro entenderlo. Ahora te pondre un ejemplo de blog beo como lo haces y lo aplico al mio.
Ejemplo: http://el-contemplador.blogspot.com.es/2012/03/nueva-aventura-para-la-marca-del-este.html
El dia 3 de mayo esta cuenta sera borrada.

Eleкtro

#7
Cita de: ELVJop en 26 Abril 2012, 19:45 PMEjemplo: http://el-contemplador.blogspot.com.es/2012/03/nueva-aventura-para-la-marca-del-este.html

Como quieras, Debido a mi insistencia y tú falta de cooperación advierto que no haré el trabajo 2 veces ni seguiré este tema a menos que decidas proporcionar los datos suficientes que se te pidieron para investigar. Ya que este code de aqui abajo es solo un ejemplo, Porque la página no contiene nada para identificar o comparar.

Código (dos) [Seleccionar]

@Echo OFF

:: Página.
Set "Url=http://el-contemplador.blogspot.com.es/2012/03/nueva-aventura-para-la-marca-del-este.html"
:: Versión inicial.
Set "Version=El Link"
:: Archivo temporal para guardar el html de WGET.
Set "TempFile=%TEMP%\temp.html"
:: Archivo donde se guardará la última versión comprobada por el Bat.
Set "LastVersion=%WINDIR%\Last_Version.txt"

REM Donde pone "El Link" debería poner "El Link XXX" por ejemplo "El Link 1.0" y cuando actualizases a una nueva versión lo cambiarías por: "El Link 1.1"
REM Manteniendo el orden de incrementación en los números para hacer una comprobación (Distinguir la version nueva de la antigua). Sino no existe nada para comparar...
REM Puedes hacer la comprobación con una palabra o con el propio archivo hospedado. (Como en el code del ejemplo de MAME Panel).

:: Si no existe el archivo, Crea el archivo con el nombre de la versión inicial.
If NOT Exist "%LastVersion%" (Echo %VERSION%>"%LastVersion%")

:: Obtiene la última versión comprobada por el bat.
For /F "Tokens=*" %%# in ('Type "%LastVersion%"') Do (Set "Version=%%#")

:: Descarga la página que contiene la url de descarga directa al archivo.
WGET -q "%URL%" -O "%TempFile%"

:: Obtiene la linea donde se encuentra el enlace directo al archivo que se quiere descargar. Y lo filtra para poder setearlo.
FOR /f tokens^=1-4^ delims^=:^" %%a in ('Type "%TempFile%" ^| find "%Version%"') Do (
REM " Esta linea puedes borrarla.

:: Si la versión es igual que la de la última comprobación, Sale del bat.
If "%%a" EQU "%Version%" (
Echo: Usted tiene la ultima version.
Pause & Exit
)

:: Si la versión es mayor que la de la última comprobación, Descarga el archivo en el escritorio.
:: Guarda el nombre de la versión comprobada. Y sale del Bat.
If "%%a" GTR "%Version%" (
Echo: Descargando la nueva versión...
WGET -U "Mozilla/5.0" %%c:%%d -O "%USERPROFILE%\Desktop\%%a"
Echo %VERSION%>"%LastVersion%"
Exit
)

REM Ejemplo para mostrar el contenido de las variables seteadas:
REM Echo Ultima version comprobada: %Version%
REM Echo Versión encontrada: %%a
REM Echo Url al archivo directo: %%c:%%d

)


PD: No se si con GDocs te servirá... Con un link de mediafire ni lo intentes. WGET tiene que dirigirse al link directo que contiene el archivo (Como en el ejemplo del code de MAME PANEL), No a una pagina que tenga recaptcha o algo parecido. WGET no es Jdownloader...

Puedes subir los archivos a un FTP público o en tu propio FTP y así no habría problemas al intentar descargar el enlace.

Salu2.








ELVJop

#8
Okay consegui lo que queria actualizaciones y por versiones en un dominio que no se borra. Ahora viene lo dificil.
Tengo este code:

@echo off
PING 72.14.204.147 | FIND "TTL=" > NUL
IF %ERRORLEVEL%==1 (echo Conectese a internet para descargar las actualizaciones) else (echo Tiene conexion a internet)
pause
exit

Que me dice si tengo conexion a internet la question es que si meto a descargar las actualizaciones y no se descarga nada aparte del html es que no hay actualizaciones pero si las hay las descarga. Mi pregunta es existe poder hacer para comprobar si una web existe?
Me serviria porque si la actualizacion es pesada descargaria sin decir nada y el que esta en la pantalla no sabria si esta comprovando o descargando
El dia 3 de mayo esta cuenta sera borrada.

Eleкtro

Cita de: ELVJop en  5 Mayo 2012, 16:14 PM
Mi pregunta es existe poder hacer para comprobar si una web existe?

Si ping no encuentra una página, Manda un código de error 1

Código (dos) [Seleccionar]
@Echo off
ping www.esta_web_no_existe.com
Echo %Errorleverl%
REM Es 1
Pause


Saludos.