Une autre possibilité que j'ai trouvée, qui ne nécessite pas d'enregistrer un fichier, inspirée par l'utilisation de grep, est :
tasklist /fi "ImageName eq MyApp.exe" /fo csv 2>NUL | find /I "myapp.exe">NUL
if "%ERRORLEVEL%"=="0" echo Program is running
/fi "" définit un filtre d'applications à trouver, dans notre cas c'est le nom *.exe
/fo csv définit le format de sortie, csv est requis car par défaut le nom de l'exécutable peut être tronqué s'il est trop long et ne serait donc pas reconnu par find ensuite.
find /I signifie une correspondance insensible à la casse et peut être omis