Je voudrais écrire un fichier batch qui vérifie si un processus est en cours d'exécution, et prend une action si c'est le cas, et une autre action si ce n'est pas le cas.A l'intérieur d'un fichier batch, comment savoir si un processus est en cours d'exécution?
Je sais que je peux utiliser liste des tâches pour lister tous les processus en cours, mais existe-t-il un moyen plus simple de vérifier directement un processus spécifique?
Il semble que cela devrait fonctionner, mais il ne fait pas:
tasklist /fi "imagename eq firefox.exe" /hn | MyTask
IF %MyTask%=="" GOTO DO_NOTHING
'do something here
:DO_NOTHING
En utilisant la solution fournie par atzz, voici une démo de travail complet:
Edit: simplifié et modifié pour fonctionner sous Windows XP et Vista à la fois
echo off
set process_1="firefox.exe"
set process_2="iexplore.exe"
set ignore_result=INFO:
for /f "usebackq" %%A in (`tasklist /nh /fi "imagename eq %process_1%"`) do if not %%A==%ignore_result% Exit
for /f "usebackq" %%B in (`tasklist /nh /fi "imagename eq %process_2%"`) do if not %%B==%ignore_result% Exit
start "C:\Program Files\Internet Explorer\iexplore.exe" www.google.com
Nice one ... il y a tellement de gemmes cachées dans cmd.exe. – Kev