programmation d'un cmd: connexion et transfert de fichier sur un ftp

Répondre
Partager Rechercher
Alors voila la question du soir:

Quelqu'un dans l'assistance pourrait il m'expliquer (et pourquoi pas me coder ça dans un cmd) quelles sont les lignes de commandes à entrer dans un fichier cmd pour:

1/- Se connecter à un ftp (genre les ftp des pages perso wanadoo)
2/- Transferer des fichiers dont le chemin est indiqué dans un fichier txt (par exemple dans mon fichier txt j'ai des noms de fichiers comme c:\trasfert\test.doc)
3/- Fermer la connexion ftp.


Pour le 2/-, je crois savoir qu'il faut utiliser la commande mput (pour multi put), mais tout cela reste flou, et je dois mal renseigner google car je ne trouve que tres peu de choses à ce sujet.

Si vous avez des suggestions, je suis preneur
  1. ftp open nom.du.serveur.distant.
  2. ?
  3. bye ou close je crois ?

Tiens quelques infos sur cette page

Maintenant, faire une sorte de script permettant cela ... Je ne saurais pas du tout...

Citation :
Si vous avez des suggestions, je suis preneur

Ambrine Telamon -> Déesse Supérieure

Citation :
Publié par Noidea

/flex
Kesako ?
Bon alors les commandes normales c'est

Ftp
Open "serveur"
user "utilisateur"
et put ou get avec les noms en case sensistive ou un mget * ou mput *, mais il faut répondre yes a chaque fichier.

Le plus simple, c'est de faire un fichier de réponse puis :

ftp < reponse.txt
Merci, j'arrive bien à me connecter et a me déconnecter de mon serveur

Maintenant, il ne me reste plus qu'a trouver mon histoire de transfert de documents.

En gros j'ai un fichier txt qui contient:

Code:
C:\a_transferer\test1.doc
C:\a_transferer\test2.doc
C:\a_transferer\test3.doc
...
Et j'aimerais que le petit programme fasse tout seul le transfert des documents sur le ftp, mais c'est pas évident je crois ^^


PS: /flex c'est une commande dans un jeu pour bander ses muscles
Ben ... sur l'url qu'a donné Noidea, il y a ceci :

Citation :
mput (Multi-mettre)

o permet de transférer plusieurs fichiers du disque local vers le serveur
https://jolstatic.fr/forums/jol/images/icons/icon5.gif


pardon pardon, j'ai rien dit ... cf réponse Paice
De toute façons je doute que ce soit possible à faire sans un minimum de programmation (au moins une boucle pour passer toutes les lignes de mon fichier txt dans une ligne de transfert), alors je vais me lancer la dedans, ça ne doit pas etre bien compliqué.
v1 en Python:
Code:
import ftplib
import os

PATH = "files_path"
user = "ftp_username"
pwd = "ftp_password"
host = "ftp_address"
port = ftp_port

files = os.listdir(PATH)

ftp = ftplib.FTP()

ftp.connect(host, port)
ftp.login(user, pwd)

for f in files:
    print "File %s" % (f)
    input = file(os.path.join(PATH, f))
    ftp.storbinary("STOR %s"%(f),input)
    input.close()

ftp.quit()
Il va envoyer tous les fichiers d'un répertoire donné vers le répertoire racine du FTP

Si tu veux utiliser un fichier listing, il "suffit" de lire ton fichier et de mettre PATH vide et les chemins complets des fichiers dans la liste "files"
v2, toujours en Python
Code:
import ftplib
import os

PATH = "listing"
user = "user"
pwd = "pass"
host = "ftp_url"
port = ftp_port

f = file(PATH)
files = f.read().split('\n')

ftp = ftplib.FTP()

ftp.connect(host, port)
ftp.login(user, pwd)

for f in files:
    name = os.path.split(f)[1]
    print "File %s" % (name)
    input = file(f)
    ftp.storbinary("STOR %s"%(name),input)
    input.close()

ftp.quit()
ftp.close()
PATH pointe sur le fichier listing, celui-ci doit être une liste de tous les fichiers à transférer séparés par un retour à la ligne (1 fichier/ligne), il faut le chemin complèt de chaque fichier (c:\foo\bar\foo.bar quoi)
Oki, donc si c'est du python, il doit me falloir un compilateur de python, ou un truc du genre non?

Parce que je ne te caches pas que si je mets ça dans un cmd, il va me faire la tête Windows
il te faut l'interpréteur python

http://www.python.org, cherche python-2.4.msi (hint: Python 2.4 dans le menu de gauche) et installe le

met le listing dans un fichier "ftp.py" (par exemple) puis lance le

pour lancer le script, l'idéal est de le faire via cmd (au cas ou il y ait des erreurs)
En dos, dans ton fichier .cmd si tu es en Windows NT / 2000 / XP

si ta liste est dans liste.txt


Code:
@Echo off
set trf=%temp%\trf.txt
echo open ton_serveur_ftp > %trf%
echo ton_login >> %trf%
echo ton_pass >> %trf%

for /f "tokens=1" %%i in (liste.txt) do echo put %%i >> %trf%

echo close >> %trf%
echo quit >> %trf%

ftp -s:%trf%
Citation :
Publié par Nenaal Llaenaan
[...]
Euh ... J'comprends pas. Il est où le dossier de destination dans le code ?
(Y en a besoin d'un nan ?)

C'est quoi ça : set trf=%temp%\trf.txt ?

Qu'est-ce que ... tokens ?

Euh ... comment faites vous ?

--edit--
Bon ... ... on va dire que je n'ai toujours pas compris...
Ce n'est pas très grave.
Merci Masklinn !!
Citation :
Publié par mipopup
Euh ... J'comprends pas. Il est où le dossier de destination dans le code ?
(Y en a besoin d'un nan ?)
dossier de destination de quoi?
Citation :
C'est quoi ça : set trf=%temp%\trf.txt
Il associe la variable trf avec un fichier temporaire

En gros, il crée un fichier texte temporaire contenant l'intégralité des commandes à faire exécuter par le client FTP en ligne de commande de Windows:

1- connection
2- identification
3- envoi des fichiers (la boucle)
4- fermeture de la connection

puis il lance le client ftp avec le switch -s qui permet d'exécuter les commandes depuis un fichier

Code:
$>ftp -h

Transfère des fichiers vers et depuis un ordinateur avec un service
de serveur FTP activé (quelquefois appelé un démon : daemon).
Ftp peut être utilisé interactivement.

FTP [-v] [-d] [-i] [-n] [-g] [-s:NomFich] [-a] [-w:TailleFen] [-A] [hôte]
[...]
  -s:NomFich     Spécifie un fichier texte contenant les commandes FTP ; ces
                 commandes seront automatiquement exécutées après le
                 démarrage de FTP.
[...]
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés