Como baixar arquivos do site FTP em uma linha de comando sem interação do usuário (Windows)

Como baixar arquivos do site FTP em uma linha de comando sem interação do usuário (Windows)

Eu sei que existe um comando FTP que pode ser executado na linha de comando do Windows e baixa um arquivo de um site FTP. Usuário + senha são especificados "naquele" cmd de uma linha. Essas opções + senha devem estar nessa linha de comando.

echo open 192.168.1.64 21> ftp.txt
echo anonymous>> ftp.txt
echo [email protected]>> ftp.txt
echo bin >> ftp.txt
echo get test.txt >> ftp.txt
echo bye >> ftp.txt

ftp -s:ftp.txt

Responder1

Experimente isto:Arquivos em lote - downloads FTP autônomos

WGET ftp://ftp.mydomain.com/path/file.ext  

para downloads anônimos

ou:

WGET ftp://user:[email protected]/path/file.ext  

quando a autenticação é necessária.


Como @XavierStuvw apontou por meio de edições e comentários, mudar WGETpara letras minúsculas wgetfuncionaria no Linux.

wget ftp://user:[email protected]/path/file.ext

Responder2

Eu encontrei o caminho:

echo open 192.168.0.1 >> ftp &echo user admin w00t >> ftp &echo binary >> ftp &echo get file.zip >> ftp &echo bye >> ftp &ftp -n -v -s:ftp &del ftp

Responder3

Observe que você pode solicitar a sintaxe de um comando no DOS usando o comando /? trocar. Por exemplo:

C:\>ftp /?

Transfere arquivos de e para um computador executando um serviço de servidor FTP
(às vezes chamado de daemon). O FTP pode ser usado interativamente.

FTP [-v] [-d] [-i] [-n] [-g] [-s:nome do arquivo] [-a] [-A] [-x:sendbuffer] [-r:recvbuf
fer] [-b:asyncbuffers] [-w:windowsize] [host]

  -v Suprime a exibição de respostas do servidor remoto.
  -n Suprime o login automático na conexão inicial.
  -i Desativa a solicitação interativa durante vários arquivos
                  transferências.
  -d Habilita a depuração.
  -g Desativa o globbing do nome do arquivo (consulte o comando GLOB).
  -s:filename Especifica um arquivo de texto contendo comandos FTP; o
                  os comandos serão executados automaticamente após o início do FTP.
  -a Use qualquer interface local ao vincular a conexão de dados.
  -Um login como anônimo.
  -x:send sockbuf Substitui o tamanho SO_SNDBUF padrão de 8192.
  -r:recv sockbuf Substitui o tamanho SO_RCVBUF padrão de 8192.
  -b:contagem assíncrona Substitui a contagem assíncrona padrão de 3
  -w:windowsize Substitui o tamanho do buffer de transferência padrão de 65535.
  host Especifica o nome do host ou endereço IP do remoto
                  host ao qual se conectar.

Notas:
  - Os comandos mget e mput usam y/n/q para sim/não/sair.
  - Use Control-C para abortar comandos.

No seu caso, você desejará usar a opção -s para alimentá-lo com um script, incluindo as respostas de login.

Por exemplo:

  1. Crie um arquivo de script (c:\scriptfile.txt) com o seguinte conteúdo:

    open
    servername_or_ip
    username
    password
    get
    /fullpath/thefile.txt
    c:\fullpath\thefile.txt
    quit
    
  2. execute ftp com a opção -s e especifique o nome do arquivo do script

    C:\>ftp -s:c:\scriptfile.txt
    

Responder4

Experimente curl, é poderoso e vem pronto para uso (win10).

curl --user ftpusername:ftpuserpass -o outputdirname\test.txt  ftp://host/test.txt

informação relacionada