Как посчитать процесс cmd.exe с определенным названием? - PullRequest
0 голосов
/ 17 декабря 2018

dividing product proc commands

Я хочу посчитать процесс cmd.exe с заголовком dividing product proc.Я могу сосчитать cmd.exe, как показано ниже:

for /f "tokens=1 delims=" %%# in ('qprocess^|find /i /c /n "cmd.exe"') do (
    set number=%%#
)

Но этот код считается каждый cmd.exe.Есть ли способ посчитать cmd.exe с его названием?

1 Ответ

0 голосов
/ 17 декабря 2018

Следующий пакетный файл демонстрирует, как эту задачу можно выполнить с помощью пакетного файла с помощью команды tasklist (документация по SS64), документированной также Microsoft на странице Команды Windows , содержащей ссылку на tasklist документация.

@echo off
set "ProcessCount=0"
for /F "skip=3 delims=" %%I in ('%SystemRoot%\System32\tasklist.exe /FI "IMAGENAME eq cmd.exe" /FI "WINDOWTITLE eq dividing product proc" 2^>nul') do set /A ProcessCount+=1
echo Number of cmd.exe processes with window title "dividing product proc": %ProcessCount%
echo/
pause

Первые три строки вывода TASKLIST пропускаются FOR из-за skip=3.Запустите в окне командной строки tasklist /FI "IMAGENAME eq cmd.exe" /FI "WINDOWTITLE eq dividing product proc", чтобы понять, почему первые три строки вывода TASKLIST не представляют интереса для подсчета cmd.exe процессов с заголовком окна dividing product proc.delims= используется для отключения режима разделения строк путем указания пустого списка разделителей для очень быстрой обработки строк.

Также можно использовать TASKLIST параметр /NH(Без заголовка), чтобы получить список процессов, выводимых без заголовка, как предложено sst (спасибо), что делает использование skip=3 ненужным.

@echo off
set "ProcessCount=0"
for /F "delims=" %%I in ('%SystemRoot%\System32\tasklist.exe /FI "IMAGENAME eq cmd.exe" /FI "WINDOWTITLE eq dividing product proc" /NH 2^>nul') do set /A ProcessCount+=1
echo Number of cmd.exe processes with window title "dividing product proc": %ProcessCount%
echo/
pause

Чтобы понять используемые команды и то, как они работают, откройте окно командной строки, выполните там следующие команды и полностью прочитайте все страницы справки, отображаемые для каждой команды.

  • echo /?
  • for /?
  • pause /?
  • set /?
  • tasklist /?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...