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

Vos Contributions VBScript Discussion :

[VBS] Retour d'un UPLOAD FTP [Sources]


Sujet :

Vos Contributions VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 94
    Par défaut [VBS] Retour d'un UPLOAD FTP
    Bonjour,

    J'ai un script qui à la fin de son traitement envoi un fichier excel sur un serveur FTP.

    J'utilise donc le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WSHShell.Run "ftp.exe -s:" & FicTemp, 0 , True
    Dans le fichier Temp se trouve les commandes FTP (open->login->pass->PUT).
    Mon problème est que parfois il y a un souci pendant le transfert (réseau ou mémoire tampon...) ce qui fait que mon fichier Excel devient illisible.

    Comment puis je tester la bonne exécution de l'UPLOAD ?
    Est il possible de récupérer la sortie (comme ce qui s'écrit en mode invite de commande par exemple) ?

    Pour info, j'utilise Run plutôt que Exec car je n'ai pas trouvé comment "cacher" l'exécution avec Exec (exécution silencieuse).

    Merci.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    J'ai pas trop d'idée .. ce soir..

    tu peu passer par un .bat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WSHShell.Run "envoi.bat", 0 , True
    envoi.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ftp -s:envoi.ftp > liste.txt
    puis tu relis le fichier liste.txt...

  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 94
    Par défaut
    Citation Envoyé par bbil Voir le message
    J'ai pas trop d'idée .. ce soir..

    tu peu passer par un .bat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WSHShell.Run "envoi.bat", 0 , True
    envoi.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ftp -s:envoi.ftp > liste.txt
    puis tu relis le fichier liste.txt...
    Merci pour ton info.

    J'aurais préféré resté en VBscript mais comme cette solution marche, je vais partir la dessus.

    Je trouve bien les lignes de retour dans le fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    150 Ok to send data.
    226 File receive OK.
    ftp : 6185 octets envoy‚s en 0,00 secondes … 6185000,00 Ko/sec.
    Me reste plus qu'a lire le ichier derriere l'éxécution du .bat.

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonsoir,

    l'on peu se passer du .bat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim WshShell
    Set WshShell = CreateObject("WScript.Shell")
    WSHShell.Run "cmd /c ftp -s:envoi.ftp > result.txt" , 0 , True
    PS : bodbod .. à l'occasion si tu fini par écrire une fonction .vbs d'envoi de fichier (par exemple en générant le fichier script ftp..) puis en lisant le résultat..
    cela pourrai devenir une bonne contribution

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 94
    Par défaut
    Citation Envoyé par bbil Voir le message
    Bonsoir,

    l'on peu se passer du .bat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim WshShell
    Set WshShell = CreateObject("WScript.Shell")
    WSHShell.Run "cmd /c ftp -s:envoi.ftp > result.txt" , 0 , True
    PS : bodbod .. à l'occasion si tu fini par écrire une fonction .vbs d'envoi de fichier (par exemple en générant) le fichier script..) puis en lisant le résultat..
    cela pourrai devenir une bonne contribution
    Il me semble avoir essayer cela sans succès. Mais je vais retester avec un mini code (non intégré avec le reste de mon code).

    Bien vu, j'avais effectivement l'intention de mettre cela dans une fonction (génération du fichier de commande, puis envoi, puis controle).

    Je vais voir cela d'ici quelques jours.

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 94
    Par défaut
    Citation Envoyé par bbil Voir le message
    Bonsoir,

    l'on peu se passer du .bat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim WshShell
    Set WshShell = CreateObject("WScript.Shell")
    WSHShell.Run "cmd /c ftp -s:envoi.ftp > result.txt" , 0 , True
    PS : bodbod .. à l'occasion si tu fini par écrire une fonction .vbs d'envoi de fichier (par exemple en générant le fichier script ftp..) puis en lisant le résultat..
    cela pourrai devenir une bonne contribution
    Bon j'ai retesté calmement avec un fichier de commande OK.
    Effectivement ca marche nickel depuis VBS avec la commande suivante (il faut appeller cmd et non ftp directement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WSHShell.Run "cmd /c ftp.exe -s:" & FicTemp & " > retour.txt", 0 , True
    Me reste plus qu'a coder la mini fonction pour contrôler le fichier de retour.

    Merci bbil

    J'essai de vous faire une petite fonction d'envoi+controle la semaine prochaine

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 94
    Par défaut
    Bon, j'ai commencé a ecrire la petite fonction.

    Mais comme dans le topic suivant, j'ai un souci avec le SHELL a l'interieur d'une fonction (function).

    Lorsque j'insère le code dans un SUB, ca marche nickel mais je ne peux pas avoir de valeur de retour indiquant le résultat du transfert.
    Lorsque je le mets dans une fonction, j'ai bien un True/False mais le shell ne fonctionne plus (donc toujours False).

    Le FTP ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function Function_UploadByFTP(ByVal FichierLocal, ByVal Repertoire, ByVal FichierFTP, ByRef Retour)
    [...]
    Écriture du fichier de commande FTP
    [...]
        Set WSHShell = CreateObject("WScript.Shell")	
        WSHShell.Run "cmd /c ftp.exe -s:" & FichierCommandeFTP & " > " & FichierRetourFTP, 0 , True   
    [...]
    Vérification du fichier de retour
    [...]
    End Function
    Ce code fonctionne mais je ne peux pas avoir de retour True/False
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Sub_UploadByFTP(ByVal FichierLocal, ByVal Repertoire, ByVal FichierFTP, ByRef Retour)
    [...]
    Écriture du fichier de commande FTP
    [...]
        Set WSHShell = CreateObject("WScript.Shell")	
        WSHShell.Run "cmd /c ftp.exe -s:" & FichierCommandeFTP & " > " & FichierRetourFTP, 0 , True   
    [...]
    Vérification du fichier de retour
    [...]
    End Sub

Discussions similaires

  1. Réponses: 19
    Dernier message: 20/04/2014, 03h19
  2. [VBS] Upload FTP
    Par kevain_09 dans le forum VBScript
    Réponses: 6
    Dernier message: 23/12/2006, 13h45
  3. [Upload] Upload ftp free
    Par joquetino dans le forum Langage
    Réponses: 9
    Dernier message: 09/10/2005, 02h28
  4. [Image]Vérifier taille image lors d'upload FTP
    Par MiJack dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 10/09/2004, 01h10

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