¿Cómo subo un archivo a un servidor FTP usando un script por lotes?

¿Cómo subo un archivo a un servidor FTP usando un script por lotes?

He creado un archivo por lotes llamado FTP_automation.batque contiene el siguiente código.

SET MyPath=E\PGP\test_pg
ftp
open 142.245.30.165 21
TESTA9MS
test11
binary
put %MyPath%
quit
Pause

Cuando estoy ejecutando FTP_automation.bat, no carga el archivo al que le estoy pasando el parámetro.

El script se detiene después ftpde lo cual se menciona en el archivo por lotes y no se conecta a la dirección IP ni al número de puerto que pasé en el archivo por lotes.

Si escribía estos comandos manualmente, funcionaba perfectamente. ¿Qué corrección se supone que debo hacer a este código?

Respuesta1

Tienes que poner los ftpcomandos en un archivo separado. No puede colocar líneas que de otro modo escribe en la terminal en un .batarchivo y esperar que se comporte de manera idéntica. El .batarchivo solo puede incluir comandos de Windows. Cuando ejecuta el ftpcomando desde el archivo por lotes, espera sus comandos. No conoce el .batarchivo, por lo que no puede leer los comandos desde allí.

Así que coloque sus comandos en un archivo de texto separado (por ejemplo ftp.txt).

open 142.245.30.165 21
TESTA9MS
test11
binary
put E\PGP\test_pg
quit

Y ejecútelo desde el .batarchivo como:

ftp -s:ftp.txt
pause

Si realmente necesita utilizar un nombre de archivo dinámico (de una variable de entorno), debe crear el archivo de texto sobre la marcha. El ftpno admite variables.


Si utiliza un mejor cliente FTP, es posible que pueda tener los comandos en el archivo por lotes y utilizar las variables de entorno.

Por ejemplo conWinSCP:

set MyPath=E\PGP\test_pg

winscp.com /command ^
    "open ftp://TESTA9MS:[email protected]" ^
    "put ""%MyPath%""" ^
    "exit"

pause

Para obtener una introducción a las secuencias de comandos con WinSCP, consulte:
https://winscp.net/eng/docs/guide_automation

También hay una guía paraConversión de secuencia de comandos FTP de Windows a secuencia de comandos WinSCP. Incluso puedes tener GUI WinSCPgenerar el archivo por lotespara ti.

(Soy el autor de WinSCP)

información relacionada