IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Internet Discussion :

[FTP] Récupération fichier en ligne de commande


Sujet :

Internet

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut [FTP] Récupération fichier en ligne de commande
    Bonjour,

    Je dois récupérer chaque jour un fichier sur un ftp distant, et souhaite automatiser cette tache, en ne récupérant que les fichiers du jour, j'utilise un fichier .bat qui appelle un fichier .ftp dont voici le contenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    open "ip du serveur"
    "user"
    "password"
    Prompt
    lcd C:\Documents and Settings\Admin\Bureau
    cd "dossier distant"
    mget Demandes_%Date~-4%%Date~-7,-5%%Date~-10,-8%_*.txt
    quit
    Il se connecte, trouve le repertoire distant, appelle le fichier et plante là :
    200 Type set to A
    Bref, ca marche pas !

    Quelqu'un a une solution ?

    Pour info, je suis novice, j'ai trouvé ce process sur le net, mais ne sais pas exactement comment ca fontionne...

    Merci,
    Matt

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Si je me fie au message d'erreur tu appelles le transfert en ASCII alors qu'il faut l'appeler en Binaire. Il faut mettre "bin" dans tes commandes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    open "ip du serveur"
    "user"
    "password"
    bin
    Prompt
    lcd C:\Documents and Settings\Admin\Bureau
    cd "dossier distant"
    mget Demandes_%Date~-4%%Date~-7,-5%%Date~-10,-8%_*.txt
    quit

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Je ne sais pas si j'appelle le transfert en ASCII... !?!
    Mais bon, j'ai suivi ton conseil, et maintenant j'ai ce message :
    200 Type set to I

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    En fait ca a pas l'air d'être un message d'erreur.
    J'ai l'impression qu'il ne trouve pas le fichier. J'ai essayé avec 20070726 à la place de %Date~-4%%Date~-7,-5%%Date~-10,-8% et ca marche.
    C'est ce truc là, qu'il doit pas digérer : %Date~-4%%Date~-7,-5%%Date~-10,-8%.

    Mais alors comment faire... ?

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Tu as vérifié si ta "formule" DATE renvoie bien ce que tu attends ?
    Le format DATE sous DOS (ou ligne de commande) dépend de l'OS et des paramètres régionnaux.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Oui, j'ai vérifié la formule notamment avec un batch pour renommer des fichiers, elle renvoie bien ce que je veux, par exemple : 20070726.

    Peut-être cette formule n'est pas "compatible" avec la fonction mget ?
    Dans ce cas, il y a peut-être un autre moyen de récupérer les fichiers du jour ?

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    As-tu essayé en affectant la date à une variable puis utiliser cette variable dans la ligne mget ?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Bonsoir,

    J'y ai bien pensé... mais comme je le dis dans mon premier message, je suis novice !
    Je ne sais pas faire... Quelle est la méthode ?

    Merci !

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set nomfich Demandes_%Date~-4%%Date~-7,-5%%Date~-10,-8%_*.txt
    mget nomfich
    c'est une piste, je n'ai rien vérifié

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Je rentre de congés... pluvieux et frais malheureusement !

    Je viens de tester ta ligne de code, mais ca ne fonctionne toujours pas

    Une autre idée ?

    Merci,
    Matthieu

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    As-tu pensé à vérfiier le résultat de l'assemblage du nom de fichier ?
    Par ex. avec :

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Lorsque l'on rentre dans le ftp, on a plus "c:" à la racine mais "ftp>" et la commande "set" n'est pas reconnu : "Commande non valide".
    Si je fais la manip avant d'entrer dans le ftp, ca marche pas puisque "monfich" (par exemple) n'y est pas présent...

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Je me suis mal exprimé.

    L'utilisation de l'assemblage du nom du fichier [nomfich] doit se faire lors de la création du fichier .ftp.

    Tu dois créer un fichier batch qui va écrire ton fichier .ftp en générant le nom de fichier avec la date puis lancer la commande FTP.
    Ça donnerait quelque chose de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    echo open "ip du serveur" > monftp.ftp
    echo "user" >> monftp.ftp
    echo "password" >> monftp.ftp
    echo cd "dossier distant" >> monftp.ftp
    echo mget Demandes_%date%.txt >> monftp.ftp
    echo quit >> monftp.ftp
    FTP -s:monftp.ftp
    La date n'est pas formatée, il faut encoder les variables et compléter le script évidemment

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    MA-GNI-FI-QUE !
    Ca fonctionne parfaitement !

    Merci beaucoup, A+
    Matt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. chemin fichier par ligne de commande
    Par amirym dans le forum Scripts/Batch
    Réponses: 18
    Dernier message: 19/05/2007, 09h25
  2. import de fichier en ligne de commande
    Par gypa dans le forum Requêtes
    Réponses: 3
    Dernier message: 15/11/2006, 10h40
  3. Compresser un fichier en ligne de commande
    Par silvaS dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 07/07/2006, 16h59
  4. Impossible de supprimer fichier en ligne de commande
    Par alexg81 dans le forum Windows
    Réponses: 2
    Dernier message: 20/04/2006, 08h05
  5. Réponses: 3
    Dernier message: 08/03/2006, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo