batch ayuda

Iniciado por Dragonasu, 25 Mayo 2015, 12:32 PM

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

Dragonasu

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 (DOS) [Seleccionar]
usuario
constrasena
ascii
Rem Fecha de maniana
set /a d=%date:~0,2%
set /a m=%date:~3,2%
set /a y=%date:~6,4%
Rem Ruta de donde se cogen los archivos para subir.
SET RUTA1=D:\Carpeta1\DarFilezilla\Func\Bajar\qwerty\

Rem Operacion que sirve para calcular el dia de maniana
:loop
  set /a d+=1

  if %d% gtr 31 (
     set d=1
     set /a m+=1

     if %m% gtr 12 (
        set m=1
        set /a y+=1
     )
  )

xcopy /d:%m%-%d%-%y% /h /l "%~f0" "%~f0\" >nul 2>&1 || goto loop

echo %d%/%m%/%y%


Rem Ruta FTP donde estan los archivos que se quiera descargar.
cd /uploads/prueba2
put %RUTA1%MaaxD10_2_%d%.%m%.%y%.00.00_FaroFarelo.txt
close
bye

Eleкtro

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
WGET for Windows

Saludos!








KZN

#2
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 (DOS) [Seleccionar]
set /a d=%date:~0,2%
set /a m=%date:~3,2%
set /a y=%date:~6,4%

  set /a d+=1

  if %d% gtr 31 (
     set d=1
     set /a m+=1

     if %m% gtr 12 (
        set m=1
        set /a y+=1
     )
  )

xcopy /d:%m%-%d%-%y% /h /l "%~f0" "%~f0\" >nul 2>&1 >>D:\Carpeta1\DarFilezilla\Func\Bajar\qwerty\*.LOG

cd D:\Carpeta1\DarFilezilla\Func\Bajar\qwerty\
dir >>D:\Carpeta1\DarFilezilla\Func\Bajar\qwerty\Log_%d%.%m%.%y%..LOG
 
ftp -i -s:"%~f0"
open HOSTNAME
USERNAME
PASSWORD
lcd D:\Carpeta1\DarFilezilla\Func\Bajar\qwerty\
pu "*.LOG"
! del D:\Carpeta1\DarFilezilla\Func\Bajar\qwerty\*.LOG
bye
cls
@echo off
echo ************************************************
echo   Script para la comunidad elhacker.net By KZN
echo ************************************************
pause >nul 2>&1

Dragonasu

#3
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

KZN

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