Valeur de retout commande en bat

Lut tt le monde.
Dans un script .bat j'utilise un exe (tlist.exe) qui renvoit le pid du processus demandé et -1 si le processus n'existe pas.
J'aimerai savoir comment recupere cette valeur de retour dans le script afin de lancer un prog si un processus n'existe pas.
Merci et @++

10 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut,

    Tu peux tester la valeur de %ERRORLEVEL%.
    Il y a une astuce avec ça, je t'invite à lire ce document, que j'utilise souvent comme référence pour tout ce qui est scripting, spécialement sous DOS :
    http://www.robvanderwoude.com/errorlevel.html

    Bàt

    Michael.

    Ne vous souciez pas de n'être pas remarqué ; cherchez 
    plutôt à faire quelque chose de remarquable [Confucius]
    1. %errorlevel% nous indique si une commande n'a pas pu etre execute nan ?
      Parce que moi la commande s'execute et renvoie une valeur. C'est cette valeur renvoyé que je veux recuperer. La commande c'est tlist.exe -p processus.exe.

      Merci @++
      1. Personnellement, je suis sous xp et la commande tlist a été mutée en tasklist qui se conduit peut-être différemment. Si ça ne marche pas avec %errorlevel%, essaie
        tlist -p processus.exe > fic.txt

        et teste le fichier...

        Michael.

        Ne vous souciez pas de n'être pas remarqué ; cherchez 
        plutôt à faire quelque chose de remarquable [Confucius]
        1. tlist.exe -p processus.exe
          if %errorlevel% == -1 echo Le processus n'est pas lance

          C'est bien ca que tu voulais dire ?
          J'ai testé %errorlevel%, il vaut toujours 0 que le processus soit lancé ou pas.
          1. Modérateur
            Peut-être avec un start /wait tlist.exe -p processus.exe ?
        2. Ok, c'est que tlist renvoie 0 meme si ton processus n'existe pas.

          utilise donc l'autre idée. Tu peux utiliser FOR /F pour tester les valeurs dans ton fichier

          Jette un coup d'oeil sur ce document :
          http://www.robvanderwoude.com/ntfortokens.html

          Michael.

          Ne vous souciez pas de n'être pas remarqué ; cherchez 
          plutôt à faire quelque chose de remarquable [Confucius]
          1. @echo off
            tlist.exe -p processus.exe > test.txt
            for /F "tokens=1 delims= " %%A in ('echo %%A') do if "%%A"=="-1" echo Le processus n'est pas lance

            Ca marche po :'(. Il y a une erreur ou pas ?
            1. 1. Remplace
              in ('echo %%A')

              par
              in ('type test.txt')


              2. As-tu vérifié que c'était bon dans test.txt ?

              Ne vous souciez pas de n'être pas remarqué ; cherchez 
              plutôt à faire quelque chose de remarquable [Confucius]
              1. C'est bon marche !!!!

                Merci a vous pour votre aide et votre rapidité.
                @++
                1. Bonjour,
                  Je souhaite avoir la valeur de retour d'une commande (qui retourne un tableau de données) en commande bat pour filtrer les lignes de ce tableau. Est ce que vous auriez une solution pour ça?
                  Merci.