El Blog de Gualtrysoft

Windows 2000/2003/2008, Active Directory, VBScript, Hyper-V, PowerShell y todo aquello interesante a la hora de usar, configurar y administrar Windows Server. También tenemos longanizas…

Cómo Acceder A Un Servidor FTP Desde Un Fichero BAT

Publicado por urpiano en Viernes 23 de Noviembre de 2007

Este tip no pretende ser una novedad ni nada original, pero bueno, buscando en el baúl de los recuerdos, he visto esta respuesta que di en su día en el grupo de noticias de Windows 2000 de los grupos públicos de Microsoft y me ha apetecido publicarla; tal cual fue, la pego a continuación:


Puedes lanzar el FTP de forma automática creando una tarea programada que llame a un BAT que contenga la línea:

ftp -s:script-ftp.txt ftp.servidor.com

El fichero script-ftp.txt contiene los comandos FTP que se ejecutarán. Por ejemplo, imagina que el usuario que se conecta es “theoden” y su contraseña es “yijarohan”, que quieres subir el fichero “muerte_al_orco.kill”, situado en local en el directorio “c:\aliados\gondor” al directorio “pelennor” y que lo quieres subir como binario, para a continuación cerrar la conexión y terminar con ftp. En script-ftp.txt pondrías algo así:

theoden
yijarohan
binary
cd pelennor
lcd c:\aliados\gondor
put muerte_al_orco.kill
close
bye

25 comentarios para “Cómo Acceder A Un Servidor FTP Desde Un Fichero BAT”

  1. Guille escribió

    Muy util… gracias :)

  2. jackson escribió

    jajaja

  3. hail escribió

    lo hago pero no consigo que conecte donde a de estar el fichero que contiene las ordenes, parece que no lo encuentra

    gracias

  4. urpiano escribió

    Hail,

    Pon la ruta completa a donde esté el script; si por ejemplo está en c:\scripts\ftp, pon:

    ftp -s:c:\scripts\ftp\script-ftp.txt ftp.servidor.com

    Si la ruta y/o el nombre del script contiene algún/os espacio/s, debes encerrarlo entre comillas:

    ftp -s:"c:\Esta es la carpeta\script-ftp.txt" ftp.servidor.com

  5. Juan escribió

    Excelente!! despues de tanto buscar encontre aqui lo que buscaba

  6. Damian escribió

    y para bajar archivos? … gracias…

  7. urpiano escribió

    Damian,

    Pues igual que si estuvieses usando el ftp de forma interactiva; por ejemplo, podemos añadir que el script baje el fichero armas-secretas-de-orco.doc:

    theoden
    yijarohan
    binary
    cd pelennor
    lcd c:\aliados\gondor
    put muerte_al_orco.kill
    get armas-secretas-de-orco.doc
    close
    bye

  8. daduni escribió

    muy bueno eso era lo que necesita…. gracias

  9. Legolas escribió

    Urpiano, ni cuando vencimos a los uruk hai en el abismo de helm me senti tan contento como la ayuda que me brindaste para acceder a un servidor via ftp desde un fichero bat.

    Tambien lo agradecen Aragororn y Gimli

  10. David florenciañez escribió

    y como se podria hacer uno parecido pero con linux?

  11. urpiano escribió

    David Florenciañez,

    En el caso de linux, tienes que crear el fichero y pasarselo a FTP por redirección. Según el ejemplo anterior, crearías el script /home/script.ftp:

    open http://ftp.servidor.com
    theoden
    yijarohan
    binary
    cd pelennor
    lcd c:\aliados\gondor
    put muerte_al_orco.kill
    get armas-secretas-de-orco.doc
    close
    bye

    Una vez creado este script, para ejecutarlo, desde bash o el shell que tengas abierto pones:

    ftp < /home/script.ftp

  12. Morgan escribió

    Está genial, es lo que buscaba.
    Una duda, ¿si necesito bajar varios archivos? Sé se van a llamar todos igual, pero con la extensión diferente xxxx.000, xxxx.001, etc…? He probado con get xxxx.* y no funciona.
    Además, me interesaría cortar los ficheros y no sólo copiar.
    Gracias de antemano.

  13. Jordi escribió

    He estado buscando durante muchos dias, y al final me encuentro este pequeño script, que a la vez que simple, es genial.
    Grácias

  14. roberto escribió

    y como puedo eliminar los archivos que esten en el server

    • urpiano escribió

      Roberto,

      supongo que tu problema es que te pide confirmación al borrar los ficheros. Para evitar esto, ejecuta el comando prompt antes de intentar los borrados. Este comando establece que se pida o no confirmación, de forma predeterminada se pide. Es un comando de tipo toggle, es decir que al ejecutar invierte el valor establecido; así pues, si una vez establecida la sesión ejecutas este comando, se desactivará el pedido de confirmaciones, si lo vuelves a ejecutar se volverá a activar, si lo ejecutas otra vez se desactiva, y así sucesivamente.

  15. marco escribió

    me funciona todo bien… pero si quiero direccionarlo a una puerto especifico

    salu2— de grand ayuda

  16. deto escribió

    Buenas. El método me parece genial, pero a mi solo me aparece en consola de MSDOS, repetido indefinidamente, el texto que escribo en el archivo .BAT:

    ftp -s: f:\datos.txt 82.172.45.123

    En el archivo datos.txt de la unidad f: escribo el usuario, la contraseña y el resto de comandos…

  17. marco escribió

    no pude direccionarlo a un puerto especifico, pero me funciono de la siguiete forma:

    en el backup.bat:
    ftp -s:quotas.txt 192.168.14.8

    en el quotas.txt:
    dominio\usuario
    password de usuario
    binary
    cd Respaldo_Quotas\folder (cd abre la carpeta y guardara el archivo en folder)
    put BackupQuotas.extension del archivo
    quit
    —–

    salu2

  18. Pedro escribió

    Tengo un problema, quiero ejecutar un .bat desde una macro de excel (VBA) en la cual me levante un archivo especifico desde el FTP. Si este script lo ejecuto desde el explorador, me levanta sin problemas el archivo, pero si lo ejecuto en la macro, no lo hace. Alguien me puede dar un mano. Gracias. Les paso las lineas de codigo de la macro.

    App = Shell(“”"c:\FTP\COP\” & arch & ” “”", vbMaximizedFocus)
    – el archivo arch = FTP_Genera_955.bat
    – el archivo FTP_Genera_955.bat contiene “ftp -s:c:\FTP\COP\FTP_Genera_955.txt 10.94.164.7″
    – el archivo FTP_Genera_955.txt contiene
    ftpde955
    xxxxxx

    bin
    mget 0955pedidos_por_puntos_p94jefse_*.txt

    quit

  19. urpiano escribió

    Pedro,

    ¿Qué valor te devuelve App después de la ejecución?

  20. urpiano escribió

    Pedro,

    ¿Has probado a poner esto otro a ver si funciona?

    App = Shell(“cmd /c “”c:\FTP\COP\” & arch & “”"”, vbMaximizedFocus)

    • Pedro escribió

      No funciona, te cuento que es lo que quiero hacer:
      En excel tengo una celda que contiene un valor segun el proceso que corre, segun este valor voy a ejecutar el .bat que necesito, pero no logro hacerlo desde excel. Gracias

Escribe un comentario

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>