Запускать программы через командную строку, но только если она еще не запущена

Я придумал пакетный файл ниже, и он отлично работает. Тем не менее, я хотел бы знать, есть ли способ закодировать его, чтобы, если программа уже запущена, она пропустит ее и запустит следующую. Я надеюсь в этом есть смысл. Любые советы будут очень признательны.

@echo off pushd start "" cmd /c cscript "C:\Users\User\Desktop\Work.vbs" start "C:\Program Files\Microsoft Office\Office15" Outlook.exe start "C:\Program Files\Microsoft Office\Office15" Lync.exe start "C:\Program Files (x86)\Google\Chrome\Application" chrome.exe runas /savecred /user:"DOMAIN\User_Adm" "C:\Program Files (x86)\VMware\Infrastructure\Virtual Infrastructure Client\Launcher\VpxClient.exe" runas /savecred /user:"DOMAIN\User_Adm" "mmc.exe \"My_Tools.msc\" 

3 Solutions collect form web for “Запускать программы через командную строку, но только если она еще не запущена”

Ниже приведен пример использования списка задач для проверки всех запущенных приложений для данного имени.
В противном случае он запускает программу. Я уверен, что вы можете приспособить его к своим потребностям

 tasklist /nh /fi "imagename eq notepad.exe" | find /i "notepad.exe" > nul || (start notepad.exe) 

Я внедрил tasklist в свой скрипт и его работу как шарм.
Здесь у кого-то еще есть те же вопросы, что и у меня.

 @echo off pushd tasklist /nh /fi "imagename eq iexplore.exe" | find /i "iexplore.exe" > nul ||(start Work.vbs) tasklist /nh /fi "imagename eq outlook.exe" | find /i "outlook.exe" > nul ||(start outlook.exe) tasklist /nh /fi "imagename eq lync.exe" | find /i "lync.exe" > nul ||(start lync.exe) tasklist /nh /fi "imagename eq chrome.exe" | find /i "chrome.exe" > nul ||(start chrome.exe) tasklist /nh /fi "imagename eq VpxClient.exe" | find /i "VpxClient.exe" > nul || runas /savecred /user:"DOMAIN\User_Adm" "C:\Program Files (x86)\VMware\Infrastructure\Virtual Infrastructure Client\Launcher\VpxClient.exe" tasklist /nh /fi "imagename eq mmc.exe" | find /i "mmc.exe" > nul || runas /savecred /user:"DOMAIN\User_Adm" "mmc.exe \"My_Tools.msc\" 
 @echo off tasklist /FI "IMAGENAME eq outlook.exe" | find /i "outlook.exe" IF ERRORLEVEL 2 GOTO LOOP2 IF ERRORLEVEL 1 GOTO LOOP1 :LOOP1 start notepad.exe goto EXIT :LOOP1 start outlook.exe goto EXIT :EXIT 
  • Дамп содержимого командной строки cmd в файл из пакетного файла
  • Буквенное письмо с данным файлом в пакете окон
  • Синтаксис перенаправления пакетного сценария
  • Bat-файл, чтобы отключить адаптер ethernet, а затем повторно использовать его после входа в Windows
  • Как извлечь поврежденные файлы RAR
  • Подключение к VPN с помощью командной строки приводит к ошибке 691
  • Инструмент командной строки для установки тега msspecific «рейтинг» в jpeg
  • Как запустить пакетный скрипт перед входом в систему?
  • Ошибка загрузки PXE на предустановленную GRUB без сообщения об ошибке
  • Windows упрямо сокращает файл подкачки
  • Как полностью отключить использование файла подкачки wmic
  • Давайте будем гением компьютера.