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
Eu sei que existe um comando FTP que pode ser executado a partir da linha de comando no Windows, e ele baixa um arquivo de um site FTP. Usuário + senha são especificados em "que" cmd de uma linha. Essas opções + passe de 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
Tente isto: Arquivos em lote - downloads de FTP autônomos
WGET ftp://ftp.mydomain.com/path/file.ext
for anonymous downloads
or:
WGET ftp://user:[email protected]/path/file.ext
when authentication is required.
Como @XavierStuvw apontou via edições e comentários, a troca de WGET
para um wget
minúsculo funcionaria no linux.
wget ftp://user:[email protected]/path/file.ext
Note que você pode pedir a sintaxe de um comando no DOS usando o /? interruptor. Por exemplo:
C:\>ftp /? Transfers files to and from a computer running an FTP server service (sometimes called a daemon). Ftp can be used interactively. FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-A] [-x:sendbuffer] [-r:recvbuf fer] [-b:asyncbuffers] [-w:windowsize] [host] -v Suppresses display of remote server responses. -n Suppresses auto-login upon initial connection. -i Turns off interactive prompting during multiple file transfers. -d Enables debugging. -g Disables filename globbing (see GLOB command). -s:filename Specifies a text file containing FTP commands; the commands will automatically run after FTP starts. -a Use any local interface when binding data connection. -A login as anonymous. -x:send sockbuf Overrides the default SO_SNDBUF size of 8192. -r:recv sockbuf Overrides the default SO_RCVBUF size of 8192. -b:async count Overrides the default async count of 3 -w:windowsize Overrides the default transfer buffer size of 65535. host Specifies the host name or IP address of the remote host to connect to. Notes: - mget and mput commands take y/n/q for yes/no/quit. - Use Control-C to abort commands.
No seu caso, você vai querer usar o switch -s para alimentá-lo com um script, incluindo as respostas de login.
Por exemplo:
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
execute o ftp com o switch -s e especifique o nome do arquivo de script
C:\>ftp -s:c:\scriptfile.txt