Inside a batch file, how can I tell whether a process is running?

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
'do something here

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"


You can use "for /f" construct to analyze program output.

set running=0
for /f "usebackq" %%T in (`tasklist /nh /fi "imagename eq firefox.exe"`) do set running=1

Also, it's a good idea to stick a

setlocal EnableExtensions

at the begginning of your script, just in case if the user has it disabled by default.

Need Your Help

access declaration can only be applied to a base class member

c++ observer-pattern

i'm using the observer pattern. I've a class that implements the publisher class:

How to Save Excel without an user prompt to save the file?

excel vbscript save

Hi I wrote some code using VBScript on Excel sheet as below. Now everytime when the Script is done its processing it is prompting the user to Save it.But I don't want this,rather I want it to save it

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.