Steeve Le Provost
Messages postés32Date d'inscriptionvendredi 12 août 2005StatutMembreDernière intervention17 juillet 2007
-
17 juil. 2007 à 12:30
Steeve Le Provost
Messages postés32Date d'inscriptionvendredi 12 août 2005StatutMembreDernière intervention17 juillet 2007
-
17 juil. 2007 à 17:21
Bonjour,
Voilà, j'ai besoin de votre aide concernant le lancement d'une commande FTP en vbScript, je m'explique...
J'ai réalisé une méthode spécifique pour créer un fichier de log avec appel de "OnLog()"
Ce que je souhaite, c'est tout simplement effectuer une redirection du déroulement de cette commande FTP vers un fichier txt (Si j'arrive a faire une redirection du déroulement de cette commande dans un fichier txt, je pourrais l'exploiter dans ma méthode OnLog).
En créant un fichier bat, j'arrive à rediriger le déroulement de cette commande dans un fichier texte dont voici le détail :
Fichier bat : ftp -s:C:\blabla\FTP_Param.txt XXX.XXX.X.X> "C:\blabla\ftp.txt"
Fichier ftp.txt généré :
Connected to XXX.XXX.X.X.220 Microsoft FTP Service
User (XXX.XXX.X.X:(none)):
331 Password required for Steeve Le Provost.
230 User Steeve Le Provost logged in.
ftp> Interactive mode Off .
ftp> prompt
Local directory now C:\blabla.
ftp> lcd "C:\blabla\transfert"
cd test
250 CWD command successful.
ftp> mput *.exe
200 PORT command successful.
150 Opening ASCII mode data connection for File.exe.
226 Transfer complete.
ftp: 60 bytes sent in 0.00Seconds 60000.00Kbytes/sec.
ftp> quit
221
Voila, ce que je souhaite est comme vous l'aurez compris de retrouver par la suite ce fichier ftp.txt dans mon log pour pouvoir réaliser ma gestion d'erreur correctement, j'ai bien essayé de saisir la meme commande dans mon Script vbs que dans le fichier bat avec le pipe de redirection mais rien n'y fait, vbs ne veut rien savoir...Je ne veux pas utiliser de fichier bat, uniquement au sein de mon script avec la méthode Run.
J'attend vos réponses ou vos suggestions si vous en avez...
Voilà, maintenant que ma redirection est effectuée ca devrait etre a priori fonctionnel...Mais j'ai un dernier problème...j'ai déjà des infos dans mon fichier essai.txt car le programme a mis des log dedans depuis le début de l'éxécution du script. Et lorsque je fait la redirection, il m'écrase le fichier pour le recréer...Donc je voudrais savoir si il est possible d'effectuer une redirection sur un fichier et d'ouvrir ce fichier en mode APPEND pour se situer à la fin et en ajout de données uniquement...
Steeve Le Provost
Messages postés32Date d'inscriptionvendredi 12 août 2005StatutMembreDernière intervention17 juillet 2007 17 juil. 2007 à 17:21
Et bien voila, je vais faire question réponse concernant mon dernier post...
Pour ceux qui souhaiterais savoir comment rediriger vers un fichier texte en mode APPEND, et bien c'est tout simplement avec ces caractères : >>au lieu de >
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201826 17 juil. 2007 à 13:40
Bonjour
Ci-dessous deux exemples pour rediriger une sortie:
1)
Option Explicit
Dim WshShell,obj,Command,Result,Temp,FileName,File
Set obj = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell=WScript.CreateObject("WScript.Shell")
FileName=GetTempFile("command.txt")
Function fnUsersConnected()
Dim objShell, objScriptExec
Dim arrTabUsers, i
Set objShell = CreateObject("WScript.Shell")
Set objScriptExec = objShell.Exec("net view")
For i=0 To UBound(arrTabUsers)
arrTabUsers(i) = Split(arrTabUsers(i)," ")
strListe = strListe &vbCrLf& Replace(arrTabUsers(i)(0),"\","")
cpt = cpt + 1
Next
fnUsersConnected = strListe & cpt
Set objShell = Nothing
Set objScriptExec = Nothing
End Function
La propriété StdOut de l'objet WScript devrait correspondre à votre attente.
Steeve Le Provost
Messages postés32Date d'inscriptionvendredi 12 août 2005StatutMembreDernière intervention17 juillet 2007 17 juil. 2007 à 14:19
Bonjour,
Merci pour cette réponse mais je ne souhaite pas utiliser la méthode Exec, celle-ci requiert un Sleep et je ne veux pas en faire car cela ne prouve pas que le fichier à été copié sur le FTP. La méthode Run elle possède un argument permettant de lui indiquer de ne passer à la ligne suivante qu'après execution du transfert FTP. Y a t'il un équivalenent pour StdOut car cette méthode ne fonctionne pas avec...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202172 17 juil. 2007 à 17:03
>+
je crois (a lire dans la doc MsDos)
.Exec est Asynchrone, il rend la main illico. a toi de boucler tant que son status indique qu'il est occupé...
ce qu'indique le premier lien fournis par JMO
me semble qu'en passant par .Exec, tu pourrais piloter la console (et donc FTP.exe) via StdOut et StdIn, t'evitant d'utiliser un fichier texte