Сделал в пару строк. Как-то так.
Правда хотелось бы поизящнее, без использования файла tmp_IsTk.txt двойным поиском в FOR
for /f "skip=2 tokens=2 delims= " %%i in ('tasklist /v ^| find /i "%1" ^& ^| find /i "Running"') do (set /a zPID=0)
for /f "skip=2 tokens=2 delims= " %%i in ('tasklist /v ^| find /i "%1" ^& ^| find /i "not responding"') do (set /a zPID=%%i)
но пишет "Непредвиденное появление: |."
Вызов.cmd
Код:
call _IsTask notepad.exe
@Echo ERRORLEVEL=%ERRORLEVEL%
Pause
_IsTask.cmd
Код:
@Echo off
FOR /F "tokens=2 delims=:" %%I IN ('CHCP') DO SET /A CP=%%I
chcp 1252 >nul
set /a zPID=-1
tasklist /v | find /i "%1">%TEMP%\tmp_IsTk.txt
for /f "skip=2 tokens=2 delims= " %%i in ('find /i "Running" %TEMP%\tmp_IsTk.txt') do (set /a zPID=0)
for /f "skip=2 tokens=2 delims= " %%i in ('find /i "not responding" %TEMP%\tmp_IsTk.txt') do (set /a zPID=%%i)
chcp %CP% >nul
del %TEMP%\tmp_IsTk.txt
exit /b %zPID%