2011-11-16 14:47:23 +0000 2011-11-16 14:47:23 +0000
25
25

Como faço FTP de múltiplos ficheiros a partir da linha de comandos?

Eu gostaria de fazer FTP do conteúdo de um directório, mas não consigo encontrar a forma correcta de utilizar um wildcard. Parece que isto seria uma coisa comum a fazer; toda a minha abordagem está errada?

O comando é

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

O script que é chamado está abaixo. Actualizado por billinkc.

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

O script inicia, nenhum ficheiro é copiado e a sessão FTP permanece aberta.

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>

Conclusion

Eu precisava de adicionar a bandeira para suprimir o comando PROMPT:

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

Respostas (7)

36
36
36
2011-11-16 15:22:28 +0000

Antes de emitir o comando mput, emita um comando prompt para desactivar o Modo Interactivo. Uma vez desligado, não deve pedir-lhe para confirmar cada ficheiro para o mput (ou um mget).

3
3
3
2011-11-16 15:01:47 +0000

Nunca tentei usar o caminho para pastas locais, mas fi-lo mudando o directório local (lcd):

username
password
ascii
cd "/destinationfolder"
lcd Backup
mput *.bak
close
quit
2
2
2
2011-11-16 15:28:32 +0000

Tente inserir a linha prompt n imediatamente antes da linha mput

1
1
1
2014-04-25 16:55:45 +0000

Como Tim Haegele mencionou, a ncftp faz isto muito bem no Linux, se você for capaz e estiver disposto a instalá-lo:

sudo apt-get install ncftp
ncftp -R ftpserver.domain.com . /Scripts/ftp01
1
1
1
2011-11-16 14:55:58 +0000

Utilize o comando mput para colocar vários ficheiros.

1
1
1
2011-11-16 22:09:40 +0000

Se tiver direitos de administrador, pode instalar ncftpput . É fácil de usar e ótimo para uploads FTP recursivos. A mudança para transferência recursiva é -R.

O software está incluído na maioria das distribuições Linux. Para Windows é instalável com Cygwin .

0
0
0
2019-06-03 19:51:05 +0000

Este é o script que usei e que funcionou comigo.

Para ftp1.bat (script):

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

Para ftp.txt (script):

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

Talvez haja partes que não sejam necessárias, mas estou a colocá-lo como funcionou para mim, espero que ajude