Come posso FTP più file dalla riga di comando?


25

Vorrei FTP il contenuto di una directory, ma non riesco a trovare il modo giusto di utilizzare un carattere jolly. Sembra che questa sarebbe una cosa comune da fare; tutto il mio approccio è sbagliato?

Il comando è

ftp -s:"C:\Scripts\ftp01" ftpserver.domain.com

Lo script chiamato è sotto. Aggiornato per conto corrente.

username
password
ascii
cd "/destinationfolder"
lcd "C:\Backup"
mput *.bak
close
quit

Lo script si avvia, nessun file viene copiato e la sessione FTP rimane aperta.

230 User username Logged in Successfully
ftp> ascii
200 TYPE Command OK A
ftp> cd "/destinationfolder"
250 Directory successfully changed to "/destinationfolder"
ftp> lcd "C:\Backup"
Local directory now C:\Backup.
ftp> mput *.bak
mput 9829980.bak? close
mput 6406766.bak? quit
ftp>
ftp>

Conclusione

Avevo bisogno di aggiungere il flag per sopprimere il comando PROMPT:

ftp -i -s:"C:\Scripts\ftp01" ftpserver.domain.com

Risposte:


36

Prima di emettere il mputcomando, emettere un promptcomando per disabilitare la modalità interattiva. Una volta spento, non dovrebbe chiederti di confermare ogni file per mput(o un mget).


3
Per coloro che si chiedono "qual è la sintassi di questo promptcomando", digita semplicemente "prompt" e commuta il prompt da vero a falso.
Noumenon,

2
Un altro modo per disabilitare il prompt interattivo è usare il -iflag sul ftpcomando stesso (es ftp -i -s:"C:\Scripts\ftp01" ftpserver.domain.com.). I documenti descrivono l' -iopzione come: "Disattiva i prompt interattivi durante più trasferimenti di file".
Jesse Webb,

3

Non ho mai provato a usare il nome percorso per le cartelle locali, ma l'ho fatto cambiando la directory locale ( lcd):

username
password
ascii
cd "/destinationfolder"
lcd Backup
mput *.bak
close
quit

2

Prova a inserire la riga prompt nappena prima della mputriga


1

Utilizzare il mputcomando per inserire più file.


1
Sì, è quello che sto usando
mmcglynn,

Dietro un firewall (in particolare SOHO o unità di livello economico)? Il built-in ftpin Windows non supporta la modalità PASV, quindi il trasferimento si bloccherà e non verrà mai completato.
Chris S,

1

Se disponi dei diritti di amministratore, puoi installare ncftpput . È facile da usare e ottimo per i caricamenti FTP ricorsivi. L'interruttore per il trasferimento ricorsivo è -R.

Il software è incluso nella maggior parte delle distribuzioni Linux. Per Windows è installabile con Cygwin .


1

Come accennato da Tim Haegele, ncftp lo fa senza problemi su Linux, se si è in grado e disposti a installarlo:

sudo apt-get install ncftp
ncftp -R ftpserver.domain.com . /Scripts/ftp01

0

Questa è la sceneggiatura che ho usato e che ha funzionato per me.

Per ftp1.bat (script):

ftp -i -s:\tmp\ftp.txt

Per ftp.txt (script):

Open ip
username
password
prompt
lcd C:\YourFolder\YourFolder
binary
cd /DestinationFolder
prompt
mput *.bak
cd ..
disconnect
quit

Forse ci sono parti che non sono necessarie ma lo sto mettendo come ha funzionato per me, spero che mi aiuti

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.