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 :

Script qui vérifie le lancement d'un programme .bat [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 15
    Par défaut Script qui vérifie le lancement d'un programme .bat
    Mes Amis les Développeurs Bonsoir/Bonjour.

    Je suis nouveau dans le monde de Batch et j'ai vraiment besoin de vos aides.

    je dois écrire un programme Batch ou Powershell qui permet de :

    1 - j'ai un script toto.bat qui permet de récupérer des datas sur un site FTP . alors je voulais écrire un programme qui vérifie chaque 15 min si ce programme est lancé ( toto.bat ) si oui il fait rien sinon il le relance . comme ça le fichier toto.bat sera toujours lancé.

    Merci bcp pour vos aides et je reste ouvert si vous avez besoin plus de clarification .

    Cordialement ,

  2. #2
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 15
    Par défaut
    J'ai trouvé ça sur le net

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    # Check if process is running and start it if it doesn't
     
    $Prog = "C:\toto.bat"
     
    $Running = Get-Process prog -ErrorAction SilentlyContinue
    $Start = {([wmiclass]"win32_process").Create($Prog)} 
    if($Running -eq $null) # evaluating if the program is running
                {& $Start} # the process is created on this line

    Maintenant il me faut juste faire en sorte que le script tourne chaque 15 min et merci

  3. #3
    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

    Voici un vbscript qui vérifie le lancement ou non de votre batch c:\toto chaque 15 minutes
    Code BAT : 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
    Option Explicit
    Dim ProcessPath
    ProcessPath = "c:\toto.bat"
    'Quitter si le script est déjà lancé
    If AppPrevInstance() = True Then WScript.Quit
    '**************************************************************************
    'Une boucle Do...Loop avec une pause de 15 minutes
    Do
        Call CheckProcess(DblQuote(ProcessPath))
        Call Pause(15) 'Pause de 15 minutes
    Loop
    '**************************************************************************
    Sub CheckProcess(ProcessPath)
        Dim strComputer,objWMIService,colProcesses,WshShell,Tab,ProcessName
        strComputer = "."
        Tab = Split(ProcessPath,"\")
        ProcessName = Tab(UBound(Tab))
        ProcessName = Replace(ProcessName,Chr(34),"")
        Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
        Set colProcesses = objWMIService.ExecQuery _
        ("Select * from Win32_Process Where Name = '"& ProcessName & "'")
        If colProcesses.Count = 0 Then
            Set WshShell = CreateObject("WScript.Shell")
            WshShell.Run ProcessPath
        Else
            Exit Sub
        End if
    End Sub
    '**************************************************************************
    'Fonction pour ajouter les doubles quotes dans une variable
    Function DblQuote(Str)
        DblQuote = Chr(34) & Str & Chr(34)
    End Function
    '**************************************************************************
    Sub Pause(NMinutes)
        Wscript.Sleep(NMinutes*1000*60)
    End Sub  
    '**************************************************************************
    Function AppPrevInstance()
    'Vérifie si un script portant le même nom que le présent script est déjà lancé
            Dim strComputer,objWMIService,colScript,objScript,RunningScriptName,Counter
            strComputer = "."
            Counter = 0
            Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
            Set ColScript = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Wscript.exe' OR Name = 'Cscript.exe'")
            For Each objScript In colScript
                    RunningScriptName = Mid(objScript.CommandLine, InstrRev(objScript.CommandLine, "\", -1, 1) + 1, Len(objScript.CommandLine) - InstrRev(objScript.CommandLine, "\", -1, 1) - 2)
                    If WScript.ScriptName = RunningScriptName Then Counter = Counter + 1
                    Wscript.Sleep 10000
            Next
            If  Counter > 1 Then
                    AppPrevInstance = True
            Else
                    AppPrevInstance = False
            End If
            Set colScript = Nothing
            Set objWMIService = Nothing
    End Function
    '**************************************************************************

  4. #4
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 15
    Par défaut
    Bonjour hackoofr.

    C'est exactement ce que je cherche Merci bcp sauf que la petite particularité j'ai trois scripts à vérifier à la fois . toto.bat et toto1.bat et toto2.bat et quand je lance les trois scripts il me vérifie qu'un seule .

    Y a t il un moyen pour vérifier les 3 à la fois ? vraiment je te remercie infiniment .

    Cordialement ,

  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
    Citation Envoyé par forcapedro10 Voir le message
    Bonjour hackoofr.
    C'est exactement ce que je cherche Merci bcp sauf que la petite particularité j'ai trois scripts à vérifier à la fois . toto.bat et toto1.bat et toto2.bat et quand je lance les trois scripts il me vérifie qu'un seule .
    Y a t il un moyen pour vérifier les 3 à la fois ? vraiment je te remercie infiniment .
    Cordialement ,

    Vous n'avez pas mentionner que vous avez 3 scripts à vérifier
    Pouvez-vous nous expliquer et préciser leurs buts ?

  6. #6
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 15
    Par défaut
    Bien sur . Viva la Tunisie et le Printemps Arabe loll.

    Alors j'ai 3 Scripts que je les ai appelé toto1.bat toto2.bat et toto3.bat qui vont aller récupérer les logs sur un serveur distant .

    C'est à dire toto1.bat va récupérer les log pour application 1 , toto2.bat va récupérer les log de l'application 2 et toto3.bat les log de l'application 3 donc mon objectif c'est de faire un script qui permet à toto1.bat et toto2.bat et toto3.bat d'étre toujours exécuter .

    en gros si je ferme toto1.bat le script malgré moi va exécuter toto1.bat au bout de 15 min .

    Voila en gros l'objectif de l'exercice .

    Je reste à ta disposition si tu veux des informations complémentaire.
    Cordialement ,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script qui vérifie si le fichier a été modifié
    Par 20132014 dans le forum Shell et commandes GNU
    Réponses: 14
    Dernier message: 29/10/2014, 00h55
  2. Réponses: 5
    Dernier message: 14/06/2008, 23h06
  3. Réponses: 6
    Dernier message: 23/02/2008, 14h33
  4. Cherche programme ou script qui met un lien sur un nom donné
    Par Mawashigeri dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/06/2006, 05h41
  5. Lancement d'un programme java depuis un script php
    Par gexti dans le forum Développement Web en Java
    Réponses: 8
    Dernier message: 07/05/2004, 17h40

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