it-git.ru
  • Windows
  • Linux
  • Виртуализация
  • Скрипты
  • Почта/Домены
  • Сеть и коммутация
  • Программное обеспечение
  • Безопасность
  • 📰

Проверить, запущена ли программа

Windows

Бывают задачи, когда в командном 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
)

Здесь используется скрипт sleep.js, делающий задержку на 1 секунду (1000 мс), см. Как сделать задержку в командном файле.
Аналогично, дождаться завершения программы, чтобы выполнить какие-то действия:
@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

В первом примере мы хотим чтобы при закрытом Outlook он запускался, то по идее дописываем start outlook. А если к примеру нам нужен не оутлук то команда старт будет выглядеть start "C\путь до файла\файл.exe"
Так команда не сработает, поскольку если посмотреть справку по ней (start /?), то в справке вы увидите следующее:
START ["заголовок"] [/D путь] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/NODE <узел NUMA>] [/AFFINITY <маска сходства>] [/WAIT] [/B]
[команда/программа] [параметры]

Можно пробовать разные варианты с ковычками и без указывать по разному пути но самый надежный и безотказно работающий это 
cd\ C\путь до файла\
start файл.exe

Готовый вариант батника который проверит запущена ли программа и если она запущена просто прекратит свою работу если программа не запущена, запустит ее
@echo off
set imagename=файл.exe
tasklist /fi "IMAGENAME eq %imagename%" | find /i "%imagename%"
if errorlevel 1 (
echo %imagename% не запущен
rem 
cd C:\путь до файла\
start файл.exe
) else (
echo %imagename% запущен
rem exit
)

Далее добавляем в диспетчер задач виндовс на запуск нашего файла по расписанию и все.

  • 30.05.2019
  • 4 327
  • 0
Xcopy
Xcopy
30-05-2019, 12:45, Windows / Программное обеспечение
Настройка сети через командную строку и BAT файл
Настройка сети через командную строку и BAT файл
30-05-2019, 15:41, Windows / Сеть и коммутация
Что такое реестр
Что такое реестр
30-05-2019, 14:06, Windows
Команды cmd
Команды cmd
30-05-2019, 12:50, Windows / Программное обеспечение
cmd, скрипт, windows, программа, автоматизация, процесс
  • Windows
  • Linux
  • Виртуализация
  • Скрипты
  • Почта/Домены
  • Сеть и коммутация
  • Программное обеспечение
  • Безопасность
  • Active Directory
  • ▒ IT Новости
AD astra cisco cmd debian Docker Exchange firewall hp interface linux LXC Mail mikrotik network ovirt ProxMox PVE radius raid route router RouterOS s3 vpn windows Россия база данных безопасность виртуализация данные диск защита копирование массив надежность настройка программный райд скрипт файл
Показать все теги

Что такое IT-GIT?

«IT» — это не просто технологии, а целый мир инноваций и решений, направленных на преодоление сложностей. Мы представляем экспертность в области информационных технологий и широкой технологической экосистемы, стремясь к постоянному развитию и совершенствованию.

«Git» — это отсылка к одной из самых популярных систем контроля версий, которая обеспечивает эффективное сотрудничество, быструю итерацию и надежное управление сложными проектами. Мы стремимся объединить и поделиться опытом и идеями специалистов в сфере технологий, создавая пространство для обмена знаниями.

Инновационные технологии + совместный опыт экспертов в области технологий = путь к успеху!


  • ◆ Полезное
  • ▻ Заметки по докеру
  • ▻ Процесс расширения LVM на примере виртуальной машины
  • ▻ Расширение раздела на HDD/SSD
  • ▻ Ремонт файловой системы linux
  • ▻ Коды символов Юникода в UTF-8
  • ▻ Загрузка CHR RouterOS
  • ▻ #mikrotik
  • ▻ #zfs

  • ★ TOP 20
  • ☆ Шпаргалка по ZFS
  • ☆ Robocopy — описание и примеры использования
  • ☆ Настройка сети через командную строку и BAT файл
  • ☆ Для чего нужен протокол STP/RSTP на примере Mikrotik
  • ☆ Мигрируем на Exchange с почты для домена (yandex, mail, google и др.)
  • ☆ Как подключить сетевой диск всем пользователям с использованием AD
  • ☆ НP ProCurve. наиболее часто используемые команды консоли.
  • ☆ Сброс пароля Windows 10 с помощью встроенной учетной записи Администратора
  • ☆ Настройка условной пересылки DNS-запросов в Mikrotik RouterOS
  • ☆ Как создать программный RAID 1 массив (зеркало) средствами Windows 10, 8.1, 8, 7, Vista
  • ☆ Проверить, запущена ли программа
  • ☆ Не работает fetch в netwatch Mikrotik (ROS 7.13)
  • ☆ Как создать RAID 1 из уже заполненного диска на Windows 10, 8.1, 8, 7, Vista
  • ☆ Mikrotik (vpn server) + Windows server 2008r2 (ad, radius server)
  • ☆ Отечественная виртуализация - на чем построена, обзор, сравнение.
  • ☆ Ремонт файловой системы linux
  • ☆ Сравнение решений WireGuard
  • ☆ Увеличение zfs диска (ISCSI FreeNAS)
  • ☆ Mikrotik, 3 провайдера, переключение и разделение трафик
  • ☆ Полезности Mikrotik
Monitorus. Мониторинг сайтов и серверов.
 
  Top.Mail.Ru      © 2019-2025.    www.IT-GIT.ru    ✉ info@it-git.ru