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 :

Vérifier si un processus est lancé ou non ? [Batch]


Sujet :

Scripts/Batch

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut Vérifier si un processus est lancé ou non ?

    Je veux vérifier si un processus est lancé ou non ?
    si le processus n'est pas lancé, alors, on l'exécute ( dans cet exemple j'ai pris la calculatrice avec nom de processus = calc.exe)
    J'ai commencé le script batch, mais j'ai un probléme de syntaxe je crois , alors "Help me please"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    Set MyProcess=calc.exe
    echo %MyProcess%
    pause
    for /f "tokens=1" %%i In ('tasklist /NH /FI "imagename eq %MyProcess%"') do set ff=%%i
    If /i %ff%==%MyProcess% (Echo %ff% est en cours d^'execution) Else (Start %MyProcess%)
    pause

  2. #2
    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
    Salut Hackoo,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off&cls
    Set MyProcess=calc.exe
    @echo off
    tasklist | find /i "%MyProcess%">nul  && echo %MyProcess% est en execution || echo %MyProcess% n'est pas en execution
    
    pause


    Si tu veux vraiment utiliser ta solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off&cls
    Set MyProcess="notepad.exe"
    
    for /f "tokens=1" %%i In ('tasklist /NH /FI "imagename eq %MyProcess%"') do set ff=%%i
    If /i "%ff%"==%MyProcess% (Echo %ff% est en cours d^'execution&pause) Else (Start %MyProcess:~1,-1%)
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    et Sacha pour ta solution
    Bon, j'ai trouvé aussi une autre façon pour aboutir à vérifier en permanence (en boucle) l'existence du processus "WinRAR.exe" (comme exemple d'application à vérifier) donc, on peut modifier bien sûr le chemin et le nom du processus à vérifier
    L'origine de cette recherche vient de ce poste : vérifier si un processus devient inactif et avertir si c'est le cas
    Ma Solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    Set "MyApplication=%Programfiles%\WinRAR\WinRAR.exe"
    Set "MyProcess=WinRAR.exe"
    Color 9B
    Title Verification de l^'execution du processus "%MyProcess%" by Hackoo
    mode con cols=75 lines=2
    :start
    cls
    tasklist /nh /fi "imagename eq %MyProcess%" 2>nul |find /i "%MyProcess%" >nul
    If not errorlevel 1 (Echo "%MyProcess%" est en cours d^'execution) else (start "" "%MyApplication%")
    ping -n 60 127.0.0.1 >nul 
    goto start
    Si tu as d'autres remarques ou bien des suggestions pour améliorer ce code surtout n'hésites pas
    Sinon Problème

  4. #4
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Merci Sacha et Hackoo.

    Avec un batch, il faudrait qu'il soit démarrer à interval régulier.
    Je mets pas résolu tout de suite, je test avant si je peux faire démarrer à toutes les 10 minutes.

    Citation Envoyé par sachadee Voir le message
    Salut Hackoo,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off&cls
    Set MyProcess="notepad.exe"
    
    for /f "tokens=1" %%i In ('tasklist /NH /FI "imagename eq %MyProcess%"') do set ff=%%i
    If /i "%ff%"==%MyProcess% (Echo %ff% est en cours d^'execution&pause) Else (Start %MyProcess:~1,-1%)
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  5. #5
    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
    Salut Hackoo, dancom5 et les autres,


    Je vous conseille d'utiliser cette technique qui est beacoup plus sûr plutôt que de tester l'errorlevel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off&cls
    
    Set MyProcess=notepad.exe
    
    :start
    tasklist | find /i "%MyProcess%">nul  && echo %MyProcess% est en execution || start "" "%MyProcess%"
    ping -n 10 127.0.0.1 >nul
    goto:start
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    et Sacha pour la remarque
    J'ai fait la même chose en vbscript en ajoutant un fichier journal pour lire les exécutions effectuées lors de la vérification
    Testez puis Votez

  7. #7
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par sachadee Voir le message
    Salut Hackoo, dancom5 et les autres,


    Je vous conseille d'utiliser cette technique qui est beacoup plus sûr plutôt que de tester l'errorlevel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off&cls
    
    Set MyProcess=notepad.exe
    
    :start
    tasklist | find /i "%MyProcess%">nul  && echo %MyProcess% est en execution || start "" "%MyProcess%"
    ping -n 10 127.0.0.1 >nul
    goto:start
    Merci pour les nouvelles découvertes des commandes "batch file" que je ne connaissais pas.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

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

Discussions similaires

  1. Vérifier si un processus est lancé ou non
    Par AZzjeioafh dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 03/12/2009, 18h55
  2. vérifier si explorer.exe est lancé.
    Par gregure dans le forum Windows
    Réponses: 3
    Dernier message: 31/07/2007, 18h41
  3. Réponses: 2
    Dernier message: 20/07/2007, 08h02
  4. Vérifier si un processus est actif
    Par Olivier Regnier dans le forum Langage
    Réponses: 29
    Dernier message: 11/03/2007, 20h53
  5. Réponses: 2
    Dernier message: 21/02/2007, 10h27

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