Je cherche à faire un batch qui vérifie si un programme tiers (par exemple FireFox) est en cours d'exécution sur ma machine Windows et qui le lance si ce n'est pas le cas. Pour ce qui est de vérifier que FireFox tourne, facile (après quelques cheveux en moins ) :
Code : Tout sélectionner
TASKLIST /FO TABLE /FI "IMAGENAME eq firefox.exe"
Code : Tout sélectionner
Nom de l'image PID Nom de la sessio Numéro d Utilisation
========================= ====== ================ ======== ============
firefox.exe 2600 Console 0 79 016 Ko
Code : Tout sélectionner
Information : aucune tâche en service ne correspond aux critères spécifiés.
Code : Tout sélectionner
set MessageErreur=Information : aucune tâche en service ne correspond aux critères spécifiés.
set status=Rien avant traitement
TASKLIST /FO TABLE /FI "IMAGENAME eq firefox.exe" > status
rem IF %status% == %MessageErreur% start blablabla
Bien sûr, je peux toujours chercher la phrase "Information : aucune tâche en service ne correspond aux critères spécifiés." dans le fichier status puis le supprimer, mais c'est pas très gracieux (plus de mémoire, plus de CPU, plus d'accès disque...).
Par ailleurs, j'ai regardé si la variable %ERRORLEVEL% pouvait m'apporter quelque chose (traiter son code à elle plutôt que le retour texte de TASKLIST) mais l'un ou l'autre résultat de TASKLIST ne semble pas l'affecter (toujours égale à 0).
Je repose donc ma question, comment puis-je faire pour que le résultat de ma commande TASKLIST soit dans une variable ?
Merci beaucoup et longue vie à batcher.fr !
TMB