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
Guille escribió
Muy util… gracias :)
jackson escribió
jajaja
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
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.comSi 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.comJuan escribió
Excelente!! despues de tanto buscar encontre aqui lo que buscaba
Damian escribió
y para bajar archivos? … gracias…
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
daduni escribió
muy bueno eso era lo que necesita…. gracias
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
David florenciañez escribió
y como se podria hacer uno parecido pero con linux?
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
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.
urpiano escribió
Morgan,
en vez de usar get usa mget
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
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.
marco escribió
me funciona todo bien… pero si quiero direccionarlo a una puerto especifico
salu2— de grand ayuda
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…
diego castaño escribió
El batch lo debes ejecutar desde una ubicacion diferente a donde tengas el archivo datos.txt para evitar ese ciclo infinito.
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
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
urpiano escribió
Pedro,
¿Qué valor te devuelve App después de la ejecución?
Pedro escribió
El valor es igual a 748,
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