Hace bastante tiempo escribí un post sobre el FTP de línea de comando. Ahora lo vuelvo a hacer pero refiriéndome a su automatización.
Los archivos de proceso por lotes (batch files) son muy viejos pero sin embargo son muy útiles para ayudar a automatizar tareas comunes como por ejemplo cargar archivos a un servidor FTP remoto.
Para esto lo primero que hay que hacer es crear un archivo al que llamaremos subirporftp.cmd en el directorio de Windows o adentro de algún directorio incluido en la variable de entorno path de Windows. Se puede usar el comando «path» para saber cuál es el valor actual.
Adentro del batch file hay que copiar lo siguiente:
@echo off
echo MyUserName > comandos.dat
echo MyPassword >> comandos.dat
echo bin >> comandos.dat
echo put %1 >> comandos.dat
echo quit>> comandos.dat
ftp -n -s:comandos.dat SERVERNAME.COM
del comandos.dat
Obviamente que tendrás que reemplazar el MyUserName, mi Contraseña y el SERVERNAME.COM por los valores correctos de tu servidor FTP. Lo que este archivo por lotes hace es automatizar la utilidad de FTP usando la opción -s para la utilidad de la línea de comandos. En sí, el archivo que se genera es un archivo de respuestas.
El archivo batch utiliza el comando «»echo» para enviar mensajes de texto al servidor de FTP como si lo hubieras escrito. En el medio del archivo se pueden agregar comandos adicionales, por ejemplo un comando de cambio de directorio:
echo cd /pathname/ >> comandos.dat
Para llamar a este archivo batch, lo harás utilizando el nombre de subirporftp.cmd que le diste y pasar el nombre de un archivo como un parámetro. No es necesario escribir la extensión .cmd para hacer que el archivo funcione:
> subirporftp FileToUpload.zip
Connected to ftp.myserver.com.
220 Microsoft FTP Service
ftp> user myusername
331 Password required for myusername.
230 User myusername logged in.
ftp> bin
200 Type set to I.
ftp> put FileToUpload.zip
200 PORT command successful.
150 Opening BINARY mode data connection for FileToUpload.zip
226 Transfer complete.
ftp: 106 bytes sent in 0.01Seconds 7.07Kbytes/sec.
ftp> quit
Como todo, puede ser que tengas algunos problemitas que dependerán del servidor FTP y los comandos que se requiere ingresar para lograr el objetivo. En mi caso, descubrí que si es un servidor FTP de Microsoft hay que poner la palabra user antes del username, mientras que en un Linux no era necesaria.
Happy FTPing!
Excelente Articulos. Mil gracias, me saco de un apuro que tenia