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

VBScript Discussion :

Modifier répertoire courant pour envoi FTP


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut Modifier répertoire courant pour envoi FTP
    Bonjour,

    J'ai un script dont la fonctionnalité est la suivante :

    1°) Je vérifie si le processus "ftp.exe" tourne sur le serveur. Si elle tourne, je tue le processus car autrement cela plante ma tâche planifiée.
    2°) Je transfert des fichiers via ftp par une commande Windows cmd /c à l'aide d'un fichier de commande FTP et j'envoie le résultat dans un fichier log.
    3°) Je copie les fichiers transférés dans un autre dossier (Lorsque mon problème FTP sera résolu, je déplacerai les fichiers au lieu de les copier).

    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    set objWMIService = GetObject ("winmgmts:")
    foundProc = False
    procName = "ftp.exe"
     
    for each Process in objWMIService.InstancesOf ("Win32_Process")
        If StrComp(Process.Name,procName,vbTextCompare) = 0 then
            foundProc = True
            procID = Process.ProcessId
        End If
    Next
    If foundProc = True Then
     
        Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process where ProcessId =" &  procID)
        For Each objProcess in colProcessList    
            objProcess.Terminate()
        Next
        WScript.Sleep(1000) 'Pause avant de relancer le check processus
        Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process where ProcessId =" &  procID)
        If colProcessList.count = 0 Then
    	FichierCommandeFTP = "D:\FTP\ftptransf_Test.ftp"
        	FichierLogFTP = "D:\FTP\ftp_Test.log"
            Set WSHShell = CreateObject("WScript.Shell")
    	WSHShell.CurrentDirectory = "D:\FTP"
        	WSHShell.Run "cmd /c ftp.exe -in -s:" & FichierCommandeFTP & " >> " & FichierLogFTP, 0 , True
    		Dim FSO
    		Set FSO = CreateObject("Scripting.FileSystemObject")
    		FSO.CopyFile "D:\FTP\Test\*.txt", "D:\FTP\old\Test"
    		'FSO.CopyFile "D:\FTP\Envoi\AFD_BL\*.csv", "D:\FTP\old\AFD_BL"
    		'FSO.CopyFile "D:\FTP\Envoi\AFD_FAC\*.csv", "D:\FTP\old\AFD_FAC"
        End If
    End If
    WScript.quit
    J'ai testé la commande cmd /c ftp.exe -in -s:FichierCommandeFTP >> FichierLogFTP toute seule et elle ne fonctionne que lorsque le promt est sur "D:\FTP".
    Donc mon problème est de modifier le répertoire courant avant de lancer la commande cmd /c ftp.exe.

    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 843
    Par défaut

    Est-ce que cette ligne passe chez-vous ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FSO.CopyFile "D:\FTP\Test\*.txt", "D:\FTP\old\Test"

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut
    Bonjour,

    Oui, les fichiers sont bien copiés.

  4. #4
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 843
    Par défaut

    Essaies de commenter cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WSHShell.CurrentDirectory = "D:\FTP"
    puis remplaces cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WSHShell.Run "cmd /c ftp.exe -in -s:" & FichierCommandeFTP & " >> " & FichierLogFTP, 0 , True
    par celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WSHShell.Run "cmd /c ftp.exe -s:" & FichierCommandeFTP & " >> " & FichierLogFTP, 0 , True
    puis tester

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut
    Cela ne fonctionne toujours pas.

    Par contre en commande Windows lorsque j'entre je reste sur le current directory de base. Il faut que je fasse et là j'ai bien le prompt

  6. #6
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 843
    Par défaut
    Il y a quoi comme fichiers dans D:\FTP ?
    il y a un fichier FTP.exe dans D:\FTP ?

  7. #7
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 843
    Par défaut
    Citation Envoyé par ghostvb Voir le message
    Cela ne fonctionne toujours pas.
    Par contre en commande Windows lorsque j'entre je reste sur le current directory de base. Il faut que je fasse et là j'ai bien le prompt

    Ou bien ceci doit-être fonctionner
    Donc on peut faire ceci et c'est à vous de tester si ça marche ou non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WSHShell.Run "cmd /c CD /D d:\FTP & ftp.exe -i -n -s:" & FichierCommandeFTP & " >> " & FichierLogFTP, 0 , True
    ou bien aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WSHShell.Run "cmd /c D: & CD d:\FTP & ftp.exe -i -n -s:" & FichierCommandeFTP & " >> " & FichierLogFTP, 0 , True

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/03/2009, 22h07
  2. modifier le DocumentRoot pour un répertoire
    Par talvins dans le forum Apache
    Réponses: 3
    Dernier message: 12/08/2008, 12h40
  3. Modifier la police pour l'envoi d'email
    Par tahiti17000 dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/08/2007, 21h09
  4. Répertoire courant pour une DLL
    Par jaduta dans le forum Delphi
    Réponses: 2
    Dernier message: 02/04/2007, 09h10
  5. répertoire courant ".\"
    Par tut dans le forum MFC
    Réponses: 2
    Dernier message: 10/03/2004, 09h57

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