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

Scripts/Batch Discussion :

batch avec cloture programmée


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Par défaut batch avec cloture programmée
    Bonjour,

    je m'explique,
    j'utilise 2 scripts afin de me connecté en ftp sur une machine distante et d'envoyer un fichier.txt
    le premier est un .bat et l'autre un .txt avec les paramètres de connexion
    ça fonctionne parfaitement, seulement, en cas de problème (liaison rompue, server ftp non lancé, firewall bloquant, etc..) ce script ne s'arrête pas et reste en attente
    de plus, ce script est programmé pour se relancé toute les 10mn, ce qui peut impliquer de nombreuses instances et finir par saturer la mémoire du pc (c'est déjà arrivé)
    pourriez vous m'aider à compléter ce script afin qu'il s'arrête automatiquement au bout de 30 secondes par exemple ?
    merci de votre aide

    Laurent

    connexion.bat

    ftp -n -s:parametres.txt


    parametres.txt

    open (l'IP distante)
    user (login du serveur ftp)
    (mdp du serveur ftp)
    prompt
    lcd c:\(emplacement du fichier à envoyer)
    mput fichier.txt
    quit

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

    Informations professionnelles :
    Activité : Enseignant

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

    Je présume que c'est la suite de cette discussion ==> http://www.developpez.net/forums/d14...r-windows-7-a/
    Si j'étais à votre place je continues tout le code en vbscript au lieu d’utiliser 3 fichiers
    1. un Vbscript = Lanceur du fichier Batch principal
    2. un fichier Batch = uploadeur vers serveur FTP
    3. un fichier texte = Les paramètres de connexion FTP etc...

    Il y a une fonction très intéressante en Vbscript qui peut uploader des fichiers avec gestion d'erreurs tout en utilisant FTP.exe en ligne de commande avec génération du fichier paramètres de connexion dans le dossier temporaire puis il sera supprimé , je vous conseille d'essayer cette fonction dans cette discussion ==> FTP sous VBS pour test débit avec affichage du résultat
    Je vous demande plus d'explication et c'est quoi votre but final ?
    Pourquoi lancer l'upload tout les 5 minutes par exemple ?
    est-ce-que pour la mise à jour vers le serveur FTP
    d'être plus explicite dans vos demandes (détaillez votre but final)

  3. #3
    Membre averti
    Femme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Par défaut
    Démasqué !!
    d'une part, ayant des compétences limitées, je découpe mon travaille en plusieurs morceaux, et donc je règle chaque pb au fur et à mesure.
    dans un second temps, je trouve pratique d'avoir un fichier pour chaque fonction ça me permet de cibler plus facilement d'où vient l'anomalie, mais aussi, pour déployer sur plusieurs poste, cela permet de modifier qu'un seul fichier et non tout le code
    le but est simple :
    j'ai un système hébergé chez plusieurs client, ce système génère un fichier .txt lorsque qu'il y a une alarme, si plus d'alarme, ce fichier est supprimé, ce fichier alarme est envoyé par fax informatique toute les 30mn
    mon but final est (pour tous nos clients équipés de ce système) de scruter toute les 5mn par exemple la présence de ce fichier, se connecter en ftp sur un poste dans mes locaux, et d'envoyé ce fichier
    de mon coté, sur ce poste, une page html qui se rafraichis toute les 3 mn, et va lire le contenu du fichier texte
    on a donc une visu globale de toutes les alarmes de tous nos clients en temps réèl (à 5mn près)
    voilà, j'éspère avoir été plus clair

  4. #4
    Membre averti
    Femme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Par défaut
    me revoilà (journées chargées...)
    j'ai testé ce script http://www.developpez.net/forums/d12...hage-resultat/
    et je suis complètement perdu
    ce script ne semble pas s'arrêter et génère énormément d'instances difficiles à tuer dans le gestionnaire des taches,

    je n'ai pas suffisamment de bases en vbs pour prétendre le modifier, n'y a t'il pas plus simple ?

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

    Informations professionnelles :
    Activité : Enseignant

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

    Postez le code que vous avez testé et

  6. #6
    Membre averti
    Femme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Par défaut

    en fait j'ai utilisé le premier script en modifiant :
    c:\Files_vbs.txt par le chemin de mon fichier
    / par /le chemin de destination
    ftp.votreserveur.com par l'ip de mon serveur
    NomUtilisteur par le user
    VotreMotdePasse par mon mdp

    en gros les mêmes infos que mon fichier paramètres.txt


    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    
    CheminFichierLocale = "c:\Files_vbs.txt"
    CheminDossierDistant = "/"
    Call FTPUpload ("ftp.votreserveur.com","NomUtilisteur","VotreMotdePasse",CheminFichierLocale,CheminDossierDistant)'appeler la Fonction FTPUpload
    '-------------------------------FTPUpload---------------------------------------------
    Function FTPUpload(sSite, sUsername, sPassword, sLocalFile, sRemotePath)
      'This script is provided under the Creative Commons license located
      'at http://creativecommons.org/licenses/by-nc/2.5/ . It may not
      'be used for commercial purposes with out the expressed written consent
      'of NateRice.com
     
      Const OpenAsDefault = -2
      Const FailIfNotExist = 0
      Const ForReading = 1
      Const ForWriting = 2
     
      Set oFTPScriptFSO = CreateObject("Scripting.FileSystemObject")
      Set oFTPScriptShell = CreateObject("WScript.Shell")
     
      sRemotePath = Trim(sRemotePath)
      sLocalFile = Trim(sLocalFile)
     
      '----------Path Checks---------
      'Here we willcheck the path, if it contains
      'spaces then we need to add quotes to ensure
      'it parses correctly.
      If InStr(sRemotePath, " ") > 0 Then
        If Left(sRemotePath, 1) <> """" And Right(sRemotePath, 1) <> """" Then
          sRemotePath = """" & sRemotePath & """"
        End If
      End If
     
      If InStr(sLocalFile, " ") > 0 Then
        If Left(sLocalFile, 1) <> """" And Right(sLocalFile, 1) <> """" Then
          sLocalFile = """" & sLocalFile & """"
        End If
      End If
     
      'Check to ensure that a remote path was
      'passed. If it's blank then pass a "\"
      If Len(sRemotePath) = 0 Then
        'Please note that no premptive checking of the
        'remote path is done. If it does not exist for some
        'reason. Unexpected results may occur.
        sRemotePath = "\"
      End If
     
      'Check the local path and file to ensure
      'that either the a file that exists was
      'passed or a wildcard was passed.
      If InStr(sLocalFile, "*") Then
        If InStr(sLocalFile, " ") Then
          FTPUpload = "Error: Wildcard uploads do not work if the path contains a " & _
          "space." & vbCRLF
          FTPUpload = FTPUpload & "This is a limitation of the Microsoft FTP client."
          Exit Function
        End If
      ElseIf Len(sLocalFile) = 0 Or Not oFTPScriptFSO.FileExists(sLocalFile) Then
        'nothing to upload
        FTPUpload = "Error: File Not Found."
        Exit Function
      End If
      '--------END Path Checks---------
     
      'build input file for ftp command
      sFTPScript = sFTPScript & "USER " & sUsername & vbCRLF
      sFTPScript = sFTPScript & sPassword & vbCRLF
      sFTPScript = sFTPScript & "cd " & sRemotePath & vbCRLF
      sFTPScript = sFTPScript & "binary" & vbCRLF
      sFTPScript = sFTPScript & "prompt n" & vbCRLF
      sFTPScript = sFTPScript & "put " & sLocalFile & vbCRLF
      sFTPScript = sFTPScript & "quit" & vbCRLF & "quit" & vbCRLF & "quit" & vbCRLF
     
     
      sFTPTemp = oFTPScriptShell.ExpandEnvironmentStrings("%TEMP%")
      sFTPTempFile = sFTPTemp & "\" & oFTPScriptFSO.GetTempName
      sFTPResults = sFTPTemp & "\" & oFTPScriptFSO.GetTempName
     
      'Write the input file for the ftp command
      'to a temporary file.
      Set fFTPScript = oFTPScriptFSO.CreateTextFile(sFTPTempFile, True)
      fFTPScript.WriteLine(sFTPScript)
      fFTPScript.Close
      Set fFTPScript = Nothing 
     
      oFTPScriptShell.Run "%comspec% /c FTP -i -n -s:" & sFTPTempFile & " " & sSite & _
      " > " & sFTPResults,0,True
     
      Wscript.Sleep 1000
     
      'Check results of transfer.
      'Resultat_Transfert(fFTPResults)
      Set fFTPResults = oFTPScriptFSO.OpenTextFile(sFTPResults, ForReading, _
      FailIfNotExist, OpenAsDefault)
      sResults = fFTPResults.ReadAll
     
      fFTPResults.Close
     
      oFTPScriptFSO.DeleteFile(sFTPTempFile)
      'oFTPScriptFSO.DeleteFile (sFTPResults)
     
    If InStr(sResults, "226-File successfully transferred") > 0 Then
     FTPUpload = True	
    Set objRegex = new RegExp
    objRegex.Pattern = "226(.\w+.*)"
    objRegex.Global = True
    objRegex.IgnoreCase = True
    Set Matches = objRegex.Execute(sResults)
    For Each Match in Matches   
    Result=objRegex.Replace(Match.Value,"$1")
        MsgBox Result,64,"Resultat de Transfert !"
    Next
      ElseIf InStr(sResults, "File Not Found") > 0 Then
     MsgBox "Error: File Not Found",16,"Error: File Not Found"
        FTPUpload = "Error: File Not Found"
      ElseIf InStr(sResults, "Login authentication failed") > 0 Then
        MsgBox "Login authentication failed",16,"Login authentication failed"
        FTPUpload = "Error: Login Failed."
      Else
        FTPUpload = "Error: Unknown."
      End If
     fFTPResults.Close
      Set oFTPScriptFSO = Nothing
      Set oFTPScriptShell = Nothing
    End Function

Discussions similaires

  1. fichier batch avec un programme en c
    Par abrouch dans le forum C
    Réponses: 0
    Dernier message: 11/11/2010, 23h06
  2. envoyer un mail avec mon programme
    Par shrek dans le forum C++Builder
    Réponses: 8
    Dernier message: 06/12/2006, 12h27
  3. Problème avec un programme éxécuter en console
    Par bzhrobby dans le forum Windows
    Réponses: 2
    Dernier message: 25/04/2005, 10h42
  4. [votre avis m'interesse] Interface avec un programme Java
    Par LineLe dans le forum Interfaces Graphiques en Java
    Réponses: 29
    Dernier message: 11/12/2004, 11h39
  5. Réponses: 5
    Dernier message: 21/11/2004, 18h59

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