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

Windows Discussion :

Fichier .bat pour ftp


Sujet :

Windows

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 2
    Points
    2
    Par défaut Fichier .bat pour ftp
    Bonjour tout le monde,

    Je cherche à créer (à travers le menu contextuel) un fichier bat qui puisse envoyer par ftp un ou plusieurs fichiers. Pour le cas d'un fichier, tout se passe bien; par contre lorsqu'on sélectionne plusieurs fichiers d'une arborescence, ça ne marche pas. Il lance X (X=nombre de fichiers sélectionnés) instances de ftp et ça n'envoie qu'un seul fichier.

    La commande associée au menu contextuel :
    c:\bat.bat "%1"

    Le contenu du fichier bat.bat :
    echo open 127.0.0.1 > ftp
    echo USER <user> >> ftp
    echo <pass> >> ftp
    echo put %1 >> ftp
    echo quit >> ftp
    ftp -invs:ftp
    del ftp

    J'aimerai savoir s'il est possible, par un fichier bat exécuté lorsqu'on sélectionne l'élément du menu contextuel, d'envoyer plusieurs fichiers (de couper la variable %1 en une liste de variable ?).

    J'espère que j'ai posé le problème assez clairement, je reste dans le coin pour tout question

    Merci beaucoup

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 40
    Points : 33
    Points
    33
    Par défaut
    Salut

    Tu devrais pouvoir t'en sortir avec une boucle for et le parametre %* (ou passer dircetement le parametre %* à ta commande ftp peut-être):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    for %%i in (%*) do (
    echo %%i 
    )
    Voila.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    Mon script devient donc :
    echo open ftp > ftp
    echo USER <user> >> ftp
    echo <pass> >> ftp
    for %%i in (%*) do (
    echo put %%i >> ftp
    )
    echo quit >> ftp
    ftp -invs:ftp
    pause
    del ftp

    Mais il ouvre toujours 2 instances ftp... Pourtant en essayant en local (en virant ftp-invs...) ça marche, il valorise correctement le fichier ftp. Quand je dis en local, j'ouvre une cmd et je mets en paramètre du .bat 2 fichiers. Après, peut-être que lorsqu'on fait une sélection de plusieurs fichiers sous windows il place les fichiers sélectionnés "à la queue" ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 40
    Points : 33
    Points
    33
    Par défaut
    Effectivement, peut-être qu'il applique ton script à chaque fichiers...
    Donc dans ce cas là, c'est normal.
    Essaye avec 3 fichiers pour voir.

    Mais là, je t'avoue que je ne peux plus rien pour toi.
    Essaye de construire ta liste de fichier avant de la filer à ton script.

    Bon courage.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    La liste de fichiers sera aléatoire en fait... c'est l'utilisateur qui la définira

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 40
    Points : 33
    Points
    33
    Par défaut
    En fait, c'est quoi exactement le menu contextuel?
    Tu programme avec quoi?
    Comment les gens vont constituer leur liste?

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    C'est le menu contextuel de n'importe quel fichier. Tout se trouve dans le regedit :
    HKEY_CLASSES_ROOT\*\shell\test\Command > J'ai créé une clé contenant la commande qui s'applique lorsque l'utilisateur fera bouton droit > test sur un ou plusieurs fichiers. La commande est :
    c:\bat.bat "%1"

    Sachant que bat.bat contient ce qu'il y avait précédemment.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    Personne ne sait comment dire à Windows que lorsqu'on sélectionne plusieurs fichiers (via l'interface graphique bien entendu) il ne doit effectuer qu'une seule opération globale pour l'ensemble ?

    Merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/05/2008, 12h58
  2. [Oracle 9i] fichier bat pour alimentation de la base
    Par cilies38 dans le forum Windows
    Réponses: 4
    Dernier message: 28/02/2007, 13h15
  3. [Oracle 9i] fichier bat pour alimentation de la base
    Par cilies38 dans le forum Oracle
    Réponses: 4
    Dernier message: 28/02/2007, 12h54
  4. Réponses: 3
    Dernier message: 09/09/2006, 23h03

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