Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Dragonasu en 25 Mayo 2015, 12:32 pm



Título: batch ayuda
Publicado por: Dragonasu en 25 Mayo 2015, 12:32 pm
No entiendo porque no me funciona el siguiente codigo, lo que quiero hacer es subir un archivo a FTP que se encuentra en la carpeta qwerty y como el archivo cada dia se llamara diferente porque tiene puesto de nombre la fecha pues tengo el siguiente codigo pero no me funciona. Una ayuda porfavor he intendado de todo pero nose que mas puedo hacer.
Código
  1. usuario
  2. constrasena
  3. ascii
  4. Rem Fecha de maniana
  5. set /a d=%date:~0,2%
  6. set /a m=%date:~3,2%
  7. set /a y=%date:~6,4%
  8. Rem Ruta de donde se cogen los archivos para subir.
  9. SET RUTA1=D:\Carpeta1\DarFilezilla\Func\Bajar\qwerty\
  10.  
  11. Rem Operacion que sirve para calcular el dia de maniana
  12. :loop
  13.   set /a d+=1
  14.  
  15.   if %d% gtr 31 (
  16.      set d=1
  17.      set /a m+=1
  18.  
  19.      if %m% gtr 12 (
  20.         set m=1
  21.         set /a y+=1
  22.      )
  23.   )
  24.  
  25. xcopy /d:%m%-%d%-%y% /h /l "%~f0" "%~f0\" >nul 2>&1 || goto loop
  26.  
  27. echo %d%/%m%/%y%
  28.  
  29.  
  30. Rem Ruta FTP donde estan los archivos que se quiera descargar.
  31. cd /uploads/prueba2
  32. put %RUTA1%MaaxD10_2_%d%.%m%.%y%.00.00_FaroFarelo.txt
  33. close
  34. bye


Título: Re: BATCH AYUDA
Publicado por: Eleкtro en 25 Mayo 2015, 16:32 pm
Un script del comando FTP.exe debe contener unicamente instrucciones de dicho comando, no búcles FOR de Batch, ni otros comandos externos cómo XCopy, ni nada semejante, esas instrucciones no las va a interpretar el comando FTP.exe.

Lo que debes hacer es, en un script de Batch normal y corriente (script.cmd), primero obtienes la fecha que quieras, y luego generas el script del comando FTP.exe (script.txt) escribiendo el nombre del archivo con esa fecha que previamente obtuviste, y por último, inicias el comando FTP.exe pasándole cómo argumento ese script que generaste.

De todas formas Batch es un lenguaje muy limitado, y usar el comando FTP de Microsoft es complicarse la vida, si en lugar de utilizar un lenguaje de programación para manejar el protocolo FTP quieres utilizar herramientas de terceros cómo estás haciendo, entonces te sugiero que utilices los puertos de las aplicaciones WPUT y WGET de Linux para Windows, que deberían curbrir tus necesidades.

WPUT for Windows (http://prdownloads.sourceforge.net/wput/wput-pre0.6.zip?download)
WGET for Windows (http://sourceforge.net/projects/gnuwin32/files/wget/1.11.4-1/)

Saludos!


Título: Re: batch ayuda
Publicado por: KZN en 25 Mayo 2015, 19:41 pm
E corregido tus lineas, e echo el Script funcional, si lo que quieres es descargar no subir archivos solo cambia "pu" por "get".

Código
  1. set /a d=%date:~0,2%
  2. set /a m=%date:~3,2%
  3. set /a y=%date:~6,4%
  4.  
  5.   set /a d+=1
  6.  
  7.   if %d% gtr 31 (
  8.      set d=1
  9.      set /a m+=1
  10.  
  11.      if %m% gtr 12 (
  12.         set m=1
  13.         set /a y+=1
  14.      )
  15.   )
  16.  
  17. xcopy /d:%m%-%d%-%y% /h /l "%~f0" "%~f0\" >nul 2>&1 >>D:\Carpeta1\DarFilezilla\Func\Bajar\qwerty\*.LOG
  18.  
  19. cd D:\Carpeta1\DarFilezilla\Func\Bajar\qwerty\
  20. dir >>D:\Carpeta1\DarFilezilla\Func\Bajar\qwerty\Log_%d%.%m%.%y%..LOG
  21.  
  22. ftp -i -s:"%~f0"
  23. open HOSTNAME
  24. USERNAME
  25. PASSWORD
  26. lcd D:\Carpeta1\DarFilezilla\Func\Bajar\qwerty\
  27. pu "*.LOG"
  28. ! del D:\Carpeta1\DarFilezilla\Func\Bajar\qwerty\*.LOG
  29. bye
  30. cls
  31. @echo off
  32. echo ************************************************
  33. echo   Script para la comunidad elhacker.net By KZN
  34. echo ************************************************
  35. pause >nul 2>&1


Título: Re: batch ayuda
Publicado por: Dragonasu en 28 Mayo 2015, 11:16 am
Gracias Eleкtro, KZN por la ayuda.
Tengo una ultima duda en el codigo de KZN. En la parte donde aparece *.LOG que habria que poner? He intentado con el nombre del archivo que necesito pero no me funciona, es este: MaaxD10_2_%d%.%m%.%y%.00.00_FaroFarelo.txt


EDITO: Me estoy liando, el script que me ha enviado KZN es solamente un archivo, es decir solo con eso deberia funcionar? Lo he llamado .bat pero cuando lo inicializo me pone fallo cuando intenta conectar con FTP


Título: Re: batch ayuda
Publicado por: KZN en 29 Mayo 2015, 14:37 pm
tienes dos opciones o cambiar la extensión a .txt o dejarlo en .log pero no te recomiendo poner "MaaxD10_2_%d%.%m%.%y%.00.00_FaroFarelo.txt" porque entonces ya si estropeas el Batch