Пакетный скрипт, чтобы сказать, запущен процесс или нет - PullRequest
0 голосов
/ 27 апреля 2018

Я очень новичок в пакетных файлах и пытаюсь создать скрипт, который проверяет, запущен ли процесс, и предупреждает, запущен ли процесс. Это то, что я получил от Google, но не работает так, как я хочу.

tasklist /FI "IMAGENAME eq example.exe" 2>NUL | find /I /N "example.exe">NUL if "%ERRORLEVEL%"=="0" echo Program is running

Ответы [ 3 ]

0 голосов
/ 27 апреля 2018

Вы пытаетесь слишком усложнить это. Скопируйте ниже в пакетный файл. Также используйте вместо этого findstr.

tasklist /fi "imagename eq example.exe" | findstr /i "example.exe" >nul
If %errorlevel%==0 echo example.exe running.
If %errorlevel%==1 echo example.exe Not running.
0 голосов
/ 28 апреля 2018

Это еще менее сложно, нет необходимости фильтровать по ImageName, когда вы используете Find для фильтрации тоже :

TaskList|Find /I "example.exe">Nul&&(Echo Running)||Echo Not running
0 голосов
/ 27 апреля 2018

Если это партия (как указывает попытка из вопроса), согласно [MS.Docs]: использование нескольких команд и условных символов обработки :

  • && [...]

    command1 && command2

    Используйте для запуска команды, следующей за && , только если команда, предшествующая символу, выполнена успешно. Cmd.exe запускает первую команду, а затем запускает вторую команду, только если первая команда выполнена успешно.

Пример

C:\>(tasklist /FI "IMAGENAME eq svchost.exe" 2>NUL | findstr /I /N "svchost.exe" >NUL) && (echo Program running)
Program running

C:\>(tasklist /FI "IMAGENAME eq svchost1.exe" 2>NUL | findstr /I /N "svchost1.exe" >NUL) && (echo Program running)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...