Como FTP vários arquivos na linha de comando?


25

Gostaria de enviar por FTP o conteúdo de um diretório, mas não consigo encontrar a maneira correta de usar um curinga. Parece que isso seria algo comum de se fazer; toda a minha abordagem está errada?

O comando é

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

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

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

O script inicia, nenhum arquivo é 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>

Conclusão

Eu precisava adicionar o sinalizador para suprimir o comando PROMPT:

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

Respostas:


36

Antes de emitir o mputcomando, emita um promptcomando para desativar o Modo Interativo. Uma vez desligado, não deve solicitar que você confirme cada arquivo para o mput(ou um mget).


3
Para aqueles que se perguntam "qual é a sintaxe deste promptcomando", literalmente basta digitar "prompt" e alterna entre "verdadeiro" e "falso".
Noumenon

2
Outra maneira de desativar o prompt interativo é usar o -isinalizador no ftppróprio comando (por exemplo ftp -i -s:"C:\Scripts\ftp01" ftpserver.domain.com). Os documentos descrevem a -iopção como: "Desativa o prompt interativo durante várias transferências de arquivos".
Jesse Webb

3

Nunca tentei usar o nome do caminho para pastas locais, mas o fiz alterando o diretório local ( lcd):

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

2

Tente inserir a linha prompt nimediatamente antes da mputlinha


1

Use o mputcomando para colocar vários arquivos.


1
Sim, é isso que eu estou usando
mmcglynn

Por trás de um firewall (particularmente SOHO ou unidades de classe comercial baratas)? O ftpWindows incorporado não suporta o modo PASV, portanto, a transferência será interrompida e nunca será concluída.
Chris S

1

Se você possui direitos de administrador, pode instalar o ncftpput . É fácil de usar e ótimo para uploads recursivos de FTP. A opção para transferência recursiva é -R.

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


1

Como Tim Haegele mencionou, o ncftp faz isso muito bem no Linux, se você estiver apto e disposto a instalá-lo:

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

0

Este é o script que eu usei e que funcionou para mim.

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 peças que não são necessárias, mas estou colocando como funcionou para mim, espero que ajude

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.