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

  1. #1
    Membre à l'essai
    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
    Points : 20
    Points
    20
    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 à l'essai
    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
    Points : 20
    Points
    20
    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 éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    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 à l'essai
    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
    Points : 20
    Points
    20
    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 éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    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 à l'essai
    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
    Points : 20
    Points
    20
    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 ,

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut

    Voici un exemple qui peut vérifier chaque minute si internet explorer (iexplore.exe) , la calculatrice (calc.exe) et paint (mspaint.exe) sont déjà lancé ou non
    mais le problème maintenant réside dans les fichiers batch qu'on peut pas savoir exactement leurs ligne de commande, c'est qui ma bloqué un peu et je suis entrain de chercher dans le net, et j’espère trouver la bonne solution.
    Testez ce Vbscript en attendant si on peut résoudre ce mystère
    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
    Option Explicit
    Dim ProcessPath1,ProcessPath2,ProcessPath3
    ProcessPath1 = "%ProgramFiles%\Internet Explorer\iexplore.exe"
    ProcessPath2 = "%Windir%\System32\calc.exe"
    ProcessPath3 = "%Windir%\System32\mspaint.exe"
    If AppPrevInstance() Then  
        MsgBox "Il y a une instance déjà en cours",VbExclamation,"Il y a une instance déjà en cours"  
        WScript.Quit  
    Else  
        Do
        Call CheckProcess(DblQuote(ProcessPath1))
        Call CheckProcess(DblQuote(ProcessPath2))
        Call CheckProcess(DblQuote(ProcessPath3))
        Call Pause(60)
    Loop 
    End If  
    '**************************************************************************
    Sub CheckProcess(ProcessPath)
        Dim strComputer,objWMIService,colProcesses,WshShell,Tab,ProcessName
        strComputer = "."
        Tab = Split(ProcessPath,"\")
        ProcessName = Tab(UBound(Tab))
        ProcessName = Replace(ProcessName,Chr(34),"")
        'Msgbox ProcessName
        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(NSeconds)
        Wscript.Sleep(NSeconds*1000)
    End Sub  
    '**************************************************************************
    Function AppPrevInstance()  
        With GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")  
            With .ExecQuery("SELECT * FROM Win32_Process WHERE CommandLine LIKE " & CommandLineLike(WScript.ScriptName))  
                AppPrevInstance = (.Count > 1)  
            End With  
        End With  
    End Function 
    '**************************************************************************

  8. #8
    Membre à l'essai
    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
    Points : 20
    Points
    20
    Par défaut
    Hi ,
    Je n'arrive pas à executer le script . il me donne des messages d'erreurs que je n'arrive pas a déboguer.
    c'est à ce niveau que ça me bloque .

    With .ExecQuery("SELECT * FROM Win32_Process WHERE CommandLine LIKE " & CommandLine Like(WScript.ScriptName))

    As tu une idée?
    cdt

  9. #9
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut

    Testez ce nouveau script s'il marche bien chez vous alors n'oubliez pas mes +1 et marquez la discussion comme
    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
    Option Explicit
    If AppPrevInstance() Then   
        MsgBox "Il y a une instance déjà en cours",VbExclamation,"Il y a une instance déjà en cours"    
        WScript.Quit   
    Else   
        Do   
            Call Main(Array("c:\toto1.bat", "c:\toto2.bat", "c:\toto3.bat"))
            Call Pause(15) 'Pause de 15 minutes
        Loop   
    End If   
    
    Sub Main(colProcessPaths)   
        Dim ProcessPath   
        For Each ProcessPath In colProcessPaths     
            CheckProcess(ProcessPath)   
        Next   
    End Sub   
    
    Sub CheckProcess(ProcessPath)   
        On error Resume Next
        Dim ProcessName : ProcessName = StripProcPath(ProcessPath)   
        With GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")   
            With .ExecQuery("SELECT * FROM Win32_Process WHERE Commandline LIKE " &  CommandLineLike(ProcessName))   
                If .Count = 0 Then    
                    With CreateObject("WScript.Shell")  
                        .Run ProcessPath 
                    End With    
                Else    
                    Exit Sub    
                End if   
            End With   
        End With   
    End Sub   
    
    Function AppPrevInstance()   
        With GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")   
            With .ExecQuery("SELECT * FROM Win32_Process WHERE CommandLine LIKE " & CommandLineLike(WScript.ScriptFullName) & " AND CommandLine LIKE '%WScript%' OR CommandLine LIKE '%cscript%'")   
                AppPrevInstance = (.Count > 1)   
            End With   
        End With   
    End Function   
    
    Sub Pause(Minutes)    
        Wscript.Sleep(Minutes*1000*60)    
    End Sub   
    
    Function StripProcPath(ProcessPath)   
        Dim arrStr : arrStr = Split(ProcessPath, "\")   
        StripProcPath = arrStr(UBound(arrStr))   
    End Function   
    
    Function CommandLineLike(ProcessPath)   
        ProcessPath = Replace(ProcessPath, "\", "\\")   
        CommandLineLike = "'%" & ProcessPath & "%'"   
    End Function

  10. #10
    Membre à l'essai
    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
    Points : 20
    Points
    20
    Par défaut
    Merci bcp hackoofr.

    Je vous souhaite mes meilleurs Vœux et pleins de bonne chose .

    Vous étiez très efficace .

    Merci encore une fois.
    Cordialement ,

  11. #11
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut
    Citation Envoyé par forcapedro10 Voir le message
    Merci bcp hackoofr.
    Je vous souhaite mes meilleurs Vœux et pleins de bonne chose .
    Vous étiez très efficace .
    Merci encore une fois.
    Cordialement ,
    et je vous souhaite à vous de même et à tous les membres de DVP une très bonne année 2015
    Voilà, j'ai amélioré un peu le script pour qu'il devient plus général càd qu'on peut contrôler les fichiers batch et aussi bien les exécutables
    Donc, il vous suffit seulement d'ajouter les chemins des exécutables et des fichiers batch dans cette ligne :
    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Main(Array("c:\toto1.bat","c:\toto2.bat","c:\toto3.bat","%ProgramFiles%\Internet Explorer\iexplore.exe"))
    et le code complet :
    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
    61
    Option Explicit
    If AppPrevInstance() Then   
        MsgBox "Il y a une instance déjà en cours",VbExclamation,"Il y a une instance déjà en cours"    
        WScript.Quit   
    Else   
        Do   
            Call Main(Array("c:\toto1.bat","c:\toto2.bat","c:\toto3.bat","%ProgramFiles%\Internet Explorer\iexplore.exe"))
            Call Pause(15) 'Pause de 15 minutes
        Loop   
    End If   
    '**************************************************************************
    Sub Main(colProcessPaths)   
        Dim ProcessPath   
        For Each ProcessPath In colProcessPaths     
            CheckProcess(ProcessPath)   
        Next   
    End Sub   
    '**************************************************************************
    Sub CheckProcess(ProcessPath)   
        Dim ProcessName : ProcessName = StripProcPath(ProcessPath)   
        With GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")   
            With .ExecQuery("SELECT * FROM Win32_Process WHERE Commandline LIKE " &  CommandLineLike(ProcessName))   
                If .Count = 0 Then    
                    With CreateObject("WScript.Shell")  
                        .Run DblQuote(ProcessPath) 
                    End With    
                Else    
                    Exit Sub    
                End if   
            End With   
        End With   
    End Sub   
    '**************************************************************************
    Function AppPrevInstance()   
        With GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")   
            With .ExecQuery("SELECT * FROM Win32_Process WHERE CommandLine LIKE " & CommandLineLike(WScript.ScriptFullName) & _
            " AND CommandLine LIKE '%WScript%' OR CommandLine LIKE '%cscript%'")   
                AppPrevInstance = (.Count > 1)   
            End With   
        End With   
    End Function   
    '**************************************************************************
    Sub Pause(Minutes)    
        Wscript.Sleep(Minutes*1000*60)    
    End Sub   
    '**************************************************************************
    Function StripProcPath(ProcessPath)   
        Dim arrStr : arrStr = Split(ProcessPath, "\")   
        StripProcPath = arrStr(UBound(arrStr))   
    End Function   
    '**************************************************************************
    Function CommandLineLike(ProcessPath)   
        ProcessPath = Replace(ProcessPath, "\", "\\")   
        CommandLineLike = "'%" & ProcessPath & "%'"   
    End Function
    '**************************************************************************
    'Fonction pour ajouter les doubles quotes dans une variable
    Function DblQuote(Str)
        DblQuote = Chr(34) & Str & Chr(34)
    End Function
    '**************************************************************************

  12. #12
    Membre à l'essai
    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
    Points : 20
    Points
    20
    Par défaut


    Waw c'est génial !!!. quel beau script Bravo .

    Maintenant j'ai remarqué que les 3 scripts Génèrent Bcp de fichiers Log qui peuvent saturer mon espace disque . Par ailleurs, il faut que je mets en place un script qui fasse le ménage sur ces logs pour tous les logs de plus de 1 mois pour libérer de l'espace .

    à tu une Idée ?
    Cdt,

  13. #13
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut
    Citation Envoyé par forcapedro10 Voir le message
    Maintenant j'ai remarqué que les 3 scripts Génèrent Bcp de fichiers Log qui peuvent saturer mon espace disque . Par ailleurs, il faut que je mets en place un script qui fasse le ménage sur ces logs pour tous les logs de plus de 1 mois pour libérer de l'espace .
    à tu une Idée ?
    Cdt,
    Étant donné que cette discussion est
    Alors vous deviez ouvrir une autre discussion pour votre nouveau script car 1 nouvelle question = 1 nouvelle discussion
    Mais avant de l'ouvrir; faites une petite recherche sur le forum car je crois qu'ils existent plein de scripts qui peuvent résoudre votre nouveau problème.
    @+

  14. #14
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    +1 Hackoo

    Vraiment excellent !

    Je pensais vraiment que l'unique moyen pour un bat c'était en récuperant le PID de la CMD par le titre du bat.
    (comme je te l'avais dis d'ailleurs).

    Ça reste d'ailleurs une solution.

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    @echo off
    title=Montitre
    for /f "tokens=2 delims=," %%a in ('tasklist /v /fo csv ^| findstr /i "Montitre"') do (set $PID_ID=%%a)
    echo LE PID DE CE PROCESSUS EST : %$PID_ID:~1,-1%

    et ensuite on boucle en testant le PID avec tasklist.


+ 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, 01h55
  2. Réponses: 5
    Dernier message: 15/06/2008, 00h06
  3. Réponses: 6
    Dernier message: 23/02/2008, 15h33
  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, 06h41
  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, 18h40

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