Вы можете использовать tasklist (встроенный) или PsList (часть PsTools). Оба поддерживают удаленные компьютеры. Мой пример будет использовать tasklist (кому не нравятся встроенные модули?) на локальном компьютере, так как это все, что я должен проверить на данный момент. Вы можете добавить правильные аргументы для подключения к удаленному компьютеру; проверить доступные аргументы с помощью tasklist /? ,
tasklist /FI "IMAGENAME eq processname.exe" | find /I "processname.exe"
if ERRORLEVEL 1 goto NotRunning else goto Running
:NotRunning
echo The program is not running.
goto :eof
:Running
echo The program is running.
goto :eof
Сломать:
список tasklist используется для перечисления всех процессов, которые соответствуют указанному имени. Вы можете использовать подстановочные знаки (*) для частичного совпадения.
find используется для проверки того, было ли имя процесса частью вывода tasklist . Он установит уровень errorlevel (в основном, возвращаемое значение) в 1 ( ошибка ), если он не найден, в противном случае 0 (успешно). Это используется, потому что легче проверить уровень ошибки, чем текстовый вывод списка tasklist если в if .
Затем мы используем goto для перехода к нужному блоку, тем самым разделяя выполнение в зависимости от того, запущен процесс или нет. Вы также можете просто запустить команды в операторе if . goto :eof основном означает переход в конец программы (EOF = End Of File), то есть выход.