Я хотел бы написать командный файл, который проверяет, запущен ли процесс, и выполняет одно действие, если оно есть, и другое действие, если это не так.
Я знаю, что могу использовать список задач для перечисления всех запущенных процессов, но есть ли более простой способ напрямую проверять определенный процесс?
Кажется, это должно работать, но это не так:
tasklist /fi "imagename eq firefox.exe" /hn | MyTask
IF %MyTask%=="" GOTO DO_NOTHING
'do something here
:DO_NOTHING
Используя решение, предоставленное Atzz, вот полная рабочая демонстрация:
Редактирование: упрощено и изменено для работы как в WinXP, так и в 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