Бывают задачи, когда в командном CMD/BAT файле необходимо узнать, запущено ли какое-то определённое приложение.

Например, командный файл резервного копирования должен дождаться завершения программы, открывшей файлы. Или командный файл должен проверять работу программы и, если она не запущена, запускать её.

Для решения этих задач надо лишь воспользоваться командой tasklist с фильтром по названию приложения.

Проверить, запущено ли приложение Microsoft Outlook (outlook.exe):

@echo off
set imagename=outlook.exe
tasklist /fi "IMAGENAME eq %imagename%" | find /i "%imagename%"
if errorlevel 1 (
    echo %imagename% не запущен
    rem Выполняем действия, требуемые при закрытом Outlook
) else (
    echo %imagename% запущен
    rem Выполняем действия, требуемые при открытом Outlook
)

Другая задача – дождаться запуска программы, чтобы выполнить какие-то действия:

@echo off
set imagename=outlook.exe
:CheckProgram
tasklist /fi "IMAGENAME eq %imagename%" | find /i "%imagename%"
if errorlevel 1 cscript.exe sleep.js 1000 && goto CheckProgram
rem Выполняем действия, требуемые при открытом Outlook

Здесь используется скрипт sleep.js, делающий задержку на 1 секунду (1000 мс), см. Как сделать задержку в командном файле.

Аналогично, дождаться завершения программы, чтобы выполнить какие-то действия:

@echo off
set imagename=outlook.exe
:CheckProgram
tasklist /fi "IMAGENAME eq %imagename%" | find /i "%imagename%"
if not errorlevel 1 cscript.exe sleep.js 1000 && goto CheckProgram
rem Выполняем действия, требуемые при закрытом Outlook
Проверить, запущена ли программа
Метки:     

Одна мысль о “Проверить, запущена ли программа

Добавить комментарий для Александр Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *