I'd like to write a batch file that checks to see if a process is running, and takes one action if it is, and another action if it isn't.
I know I can use tasklist to list all running processes, but is there a simpler way to directly check on a specific process?
It seems like this should work, but it doesn't:
tasklist /fi "imagename eq firefox.exe" /hn | MyTask
IF %MyTask%=="" GOTO DO_NOTHING
'do something here
:DO_NOTHING
Using the solution provided by atzz, here is a complete working demo:
Edit: Simplified, and modified to work under both WinXP and Vista
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