1

Je souhaiterais écrire un script pour Windows pour des transferts FTP, notamment des copies récursives de dossier.
Est-ce possible avec 'ftp', ou vous avez des idées de clients gratuits pour faire ce genre de chose ?

2

c'est possible avec ftp.exe smile

faut executer ftp avec l'option -s suivi du fichier de script

le fichier de scrip doit contenir une commande par ligne, exemple
open ftpperso.free.fr
user
pass
cd machin
get bidule


etc... smile

3

En fait mon problème c'est pour la copie récursive.
Apparement wget pourrait convenir finalement.

4

si tu lui fais upper un répertoire, ftp veut pas ?

5

Du get ou du put ne marche pas sur des répertoires.
C'est vrai que j'ai aussi besoin de faire du put, wget doit pas aller. Je suis suis toujours ouvert à d'autres idées.

6

sur windows 2000 (j'ai pas teste avec d'autres versions), pour afficher tous les fichiers (en récursif) et sans les détails :
dir /b /s <DOSSIER>
ce qu'il manque, c'est se servir de la liste de fichiers avec ftp ...
(on peut bien sur enregistrer toute cette liste dans un fichier mais je ne sais pas comment rajouter du texte a chaque ligne)
[edit] surtout qu'il faut créer les dossiers qui n'existent pas

7

ben a priori si tu fais mkdir un rep qui existe déja ca renverra un warning mais ca plantera pas le truc donc tu pourras continuer a upper les fichiers smile

par contre faudrait effectivement faire lire le résultat de dir /s pour rajouter les commandes ftp

8

ben pour l'envoyer dans un fichier :
dir /b /s DOSSIER > fichier
(le switch B sert à n'afficher que les noms de fichiers et pas les dates, tailles, ...)
[edit] pour n'afficher que les dossier lus c'est dir /b /s /ad

9

ouais mais tu peux pas rajouter les ordres ftp directement comme ça smile

10

il faudrait grep cheeky
[edit] tiens tiens ya la commande "for" qui a l'air intéressante ...

11

hum
for /f "" %i IN ('dir /b /a-d') DO echo GET %i
ça rajoute "GET " avant chaque nom de fichier (on peut rajouter ">> liste.txt" pour tout mettre dans liste.txt)

for /f "delims=\ tokens=3*" %i IN ('dir /b /s /ad <DOSSIER>') DO echo GET %i\%j
ça permet d'avoir la liste des dossiers a créer (ça supprime c:\blabla\... , 3 étant le niveau du dossier "racine")
...reste à transformer les "\" en "/" :/

12

Merci, je vais regarder pour l'upload.
Pour le download récursif avec wget (-r), Sur le serveur FTP local où je travaille ça se passe bien, par contre dès que j'essaie sur des hébergeurs comme ifrance ou multimania, je n'obtiens qu'un index.html qui contient la liste des fichiers confus

13

mget *

te dl tout le contenu d'un rep
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

14

15

ncftp a l'air de convenir comme client, mais impossible de le faire marcher avec le proxy... Quelle idée ces proxys.

16

c'est pas une histoire de proxy transparent ? (je sais pas trop ce que c'est)

17

selon le type de proxy, il y a différents réglagles a faire sur le client FTP. C'est par exemple le cas sur ws_ftp qui supporte plusieurs proxy différent. En général c'est le bazar pour trouver le bon :/

18

Chouette, je crois que j'arrive au bout de ma lutte. #ouf#
J'utilise lftp sous Cygwin, qui a une option mirror qui marche dans les deux sens. Pour que ça marche via le proxy (proxy HTTP et pas FTP dans mon cas, il faut utiliser "FTP over HTTP proxy") la commande était pas facile à mettre en place mais elle fonctionne :
lftp -c "set hftp: proxy %proxy%; set hftp:cache no; set hftp:use-type off; echo Authentification...; open -u %prodftpuser% http://hftp://%prodserver%; mirror %prodpath%;

19

(note: wget gère très bien les proxies. tout est écrit dans la doc)

20

J'ai réussi à configurer le proxy, mais le problème vient du fait que j'utilise un proxy HTTP, le mode récursif ne marche pas (cf ./14).

21

Si, si le mode récursif marche. Tout ce que dit ton lien c'est que en plus des fichiers du site, tu vas récupérer le listing des répertoires sous forme d'un fichier index.html
Mais comme ce fichier contient des liens sur les fichiers du répertoires, ceux-ci sont également téléchargés.

22

Ah.
En tout cas c'est le proxy qui pose problème, il ne me fetch que l'index.html; et sur le serveur local ça marche.
Quand ça marche pas il dit explicitement qu'il va chercher 'index.html', quand ça marche il dit qu'il va chercher ".listing".

23

Argh, je viens de me rendre compte que mkdir et rm ne marchent pas sous lftp-Cygwin...
lftp mirror -R pour uploader récursivement ne marche donc pas. J'ai même récompilé la dernière version (celle des packages Cygwin date un peu), ça ne marche pas mieux.

24

Chouette, apparement c'est toujours le proxy qui casse tout.