web-dev-qa-db-fra.com

Téléchargez les fichiers depuis un site FTP en une seule ligne de commande sans interaction de l'utilisateur (Windows)

Je sais qu'il existe une commande FTP qui peut être exécutée à partir de la ligne de commande sous Windows et qui télécharge un fichier à partir d'un site FTP. Utilisateur + mot de passe sont spécifiés dans "this" one-line cmd. Ces options + mot de passe doivent être sur cette ligne de commande.

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
9
soundhax

J'ai trouvé le chemin:

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
5
soundhax

Essayez ceci: Fichiers batch - Téléchargements FTP sans surveillance

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

pour les téléchargements anonymes

ou:

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

quand l'authentification est requise.


Comme @XavierStuvw l'a fait remarquer via des modifications et des commentaires, échanger WGET en minuscule wget fonctionnerait sous linux.

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

Notez que vous pouvez demander la syntaxe d'une commande sous DOS à l'aide de /? commutateur. Par exemple:

 C: \> ftp /?

.Transfère des fichiers vers et depuis un ordinateur exécutant un service de serveur FTP 
 (Parfois appelé démon). Le ftp peut être utilisé de manière interactive. 
 
 FTP [-v] [-d] [-i] [-n] [-g] [-s: nom_fichier] [-a] [-A ] [-x: sendbuffer] [-r: recvbuf 
 fer] [-b: asyncbuffers] [-w: windowsize] [Hôte] 
-.____.] -v Supprime l'affichage de la télécommande réponses du serveur. 
 -n Supprime la connexion automatique lors de la connexion initiale. 
 -i Désactive l’invite interactive lors de plusieurs transferts de fichiers 
. 
 -d Active le débogage. 
 -g Désactive la suppression du nom de fichier (voir la commande GLOB). 
 -s: nom_fichier Spécifie un fichier texte contenant des commandes FTP; les commandes 
 seront automatiquement exécutées après le démarrage de FTP. 
 -a Utilisez une interface locale pour lier une connexion de données. 
 -Un login anonyme. 
 -x: send sockbuf Substitue la taille par défaut de SO_SNDBUF de 8192. 
 -r: recv sockbuf Substitue la taille par défaut de SO_RCVBUF de 8192. 
 -b: nombre asynchrone Remplace le nombre par défaut asynchrone de 3 
 - w: windowsize Remplace la taille de tampon de transfert par défaut de 65 535. 
 Hôte Spécifie le nom d'hôte ou l'adresse IP de l'hôte 
 distant auquel vous souhaitez vous connecter. 
 
 Remarques: 
 - Les commandes mget et mput prennent y/n/q pour yes/no/quit. 
 - Utilisez Control-C pour annuler les commandes. 
 

Dans votre cas, vous voudrez utiliser le commutateur -s pour lui donner un script, y compris les réponses de connexion.

Par exemple:

  1. Créez un fichier de script (c:\scriptfile.txt) avec le contenu suivant:

    open
    servername_or_ip
    username
    password
    get
    /fullpath/thefile.txt
    c:\fullpath\thefile.txt
    quit
    
  2. exécutez ftp avec le commutateur -s et spécifiez le nom du fichier de script

    C:\>ftp -s:c:\scriptfile.txt
    
2
yosh m