Trasferimento FTP automatico di file(s) tramite batch

Spesso a lavoro mi capita di dover inviare o ricevere tramite il protocollo FTP uno o più file in maniera rapida, con un click, anzi doppio click. Nel caso di utilizzo di un sistema operativo Windows una soluzione consiste nell’utilizzo di file batch. Per adempiere il nostro lavoro dobbiamo creare due file. Il primo file conterrà i comandi da inviare al server ftp che convenzionalmente chiameremo cmd.ftp, mentre il secondo file sarà il file batch vero e proprio, che eseguirà i comandi iterativamente e che chiameremo ftptransfer.bat
 

Attenzione non chiamate mai un batch con il nome di un programma che viene richiamato al suo interno, cioè non chiamate per esempio il file batch ftp.bat se all’interno richiamerete il programma ftp, altrimenti rischierete di creare un’esecuzione ricorsiva del batch fino all’esaurimento delle risorse!

Andiamo dunque a vedere il primo file, quello dei comandi ftp:

File cmd.ftp:

1
2
3
4
5
6
7
8
user username password
cd /path
bin
hash
get example1.dat
put example2.dat
disconnect
bye

La prima riga invia il comando username che ha come parametri l’username e la password da utilizzare per l’autenticazione. I comandi dalla 3a alla 4 riga non sono obbligatori, nell’ordine eseguono un cd per un cambio di directory sul file system remoto, bin abilita il trasferimento binario, hash permette la visualizzazione di una sorta di progress bar, il comando get server per scaricare sul computer locale un file presente sul server FTP remoto, mentre il suo antagonista put fa l’esatto opposto, cioè invia un file locale sul server remoto. Infine abbiamo disconnect che chiude la connessione con il server ftp, e bye che chiude il programma client ftp.

Veniamo adesso al file batch:

File ftptransfer.bat:

1
2
3
4
5
6
7
8
9
@ECHO OFF
echo --------------------------
echo Trasferimento FTP avviato
echo --------------------------
ftp -n -s:cmd.ftp indirizzo_server
echo ---------
echo F I N E
echo ---------
pause

Qui non c’è molto da dire se non i vari comandi batch echo che stampano su console delle informazioni, ed il comando ftp seguito da alcuni parametri:
-n disabilita l’autoconnessione dopo la connessione iniziale.
-s:nomefile specifica un file di testo contenente i comandi FTP.

Ecco un esempio:

 

Da notare il carattere “cancelletto” (hash mark) utilizzato come progress bar dell’avvenuto trasferimento.

Be Sociable, Share!
Precedente Integrare i driver SATA su un nuovo CD di Windows XP Successivo Squid proxy: panoramica, installazione e configurazione

4 commenti su “Trasferimento FTP automatico di file(s) tramite batch

  1. Davide il said:

    Grande soluzione! Funziona! Mi dà problemi sul .ftp quando imposto l’esecuzione del .bat dall’Utilità di Pianificazione di Win..
    Consigili??

  2. Davide che problema ti da ? Prova a verificare la directory di lavoro, quando si utilizzano le operazioni pianificate la directory corrente non è detto che sia quella dove si trovano i file. Potresti per esempio mettere la path assoluta (p.e. c:\programmi\) per il file cmd.ftp all’interno del file .bat

Lascia un commento

*

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.