2009-04-06 4 views
2

J'ai besoin d'un script pour télécharger tous les fichiers dans un répertoire donné. J'ai seulement un accès ftp. Un test rapide montre que je ne peux pas demander à mon client FTP de se connecter à partir de la ligne de commande. Même après avoir essayé la réponse d'Arnshea, il refuse de lire le mot de passe du fichier ou stdin.Client FTP scriptable

Même après m'être connecté, je ne peux pas télécharger de jokers. (fixe par mget, grâce Arnshea)

Essayer wget échoue également. Je vais bien avec Windows ou Linux tant que c'est simple.

+0

Quel est le problème avec wget? Pourquoi échoue-t-il? –

+0

wget ne peut pas utiliser de caractères génériques – BCS

Répondre

6

si vous êtes sur Windows, vous pouvez transmettre un fichier texte avec les commandes à exécuter ...

par exemple,

ftp -s:ftptest.txt ftp.download.com 

où ftptest.txt contient

anonymous 
[email protected] 
bin 
hash 
prompt 
mget *.* 
quit 
+0

Une technique similaire devrait également fonctionner sous Unix. –

+0

Oui, c'est insensiblement insécure mais heh, la sécurité ne faisait pas partie de l'OP :) Aussi, -A peut être utilisé à la place des 2 premières lignes. –

+0

Je ne peux pas utiliser anonyme et il n'accepte pas un mot de passe du fichier – BCS

1

wget devrait fonctionner. Essayez:

wget ftp://domain.com/full/path --ftp-user=username --ftp-password=password

+0

wget avait des problèmes avec les caractères génériques – BCS

1

Robo-FTP est également scriptable

Voici un script Robo-FTP pour télécharger tous les fichiers dans un dossier distant:

WORKINGDIR "c:\destination\folder" 
IFERROR GOTO done 
FTPLOGON "ftp.mydomain.com" /user="UserID" /pw="secret!" 
IFERROR GOTO done 
RCVFILE "*" /subdirs /emptydirs 
:done 
FTPLOGOFF 
EXIT