Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - bat файл, для проверки колва процессов запущенных

Ответить
Настройки темы
CMD/BAT - bat файл, для проверки колва процессов запущенных

Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте.

Подскажите, как написать bat файл, который будет отрабатывать след. ситуацию

в диспетчере задач крутятся два процесса одинаковых, под разными PID
proc.exe pid 888
proc.exe pid 999

как проверять, что если таких процессов меньше 2, то запускать службу, например, service1 ?

заранее благодарен!

Отправлено: 18:37, 03-04-2018

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sFileName=proc.exe

for /f "usebackq delims=" %%i in (`tasklist.exe /nh /fi "IMAGENAME eq %sFileName%" ^| 2^>nul find.exe /i "%sFileName%" ^| find.exe /c /v ""`) do if %%i lss 2 net.exe start "service1"

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:14, 03-04-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Казбек

Ветеран


Сообщения: 5380
Благодарности: 1875

Профиль | Отправить PM | Цитировать


Sargezzz,

Код: Выделить весь код
@echo off
for /f "tokens=1 delims=" %%# in ('qprocess^|find /i /c /n "proc.exe"') do (
    set number=%%#
)
if %number% EQU 1 sc start SharedAccess
SharedAccess - название вашей службы.

-------
Кто реку перешел, тому росы бояться ни к чему


Последний раз редактировалось Казбек, 03-04-2018 в 19:40.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:21, 03-04-2018 | #3


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Казбек, подскажите, а как вывести на экран командной строки количество найденных процессов?

у меня такое ощущение, что не находит эти процессы, хотя в диспетчере задач они запущены.

Отправлено: 19:40, 03-04-2018 | #4


Аватара для Казбек

Ветеран


Сообщения: 5380
Благодарности: 1875

Профиль | Отправить PM | Цитировать


Цитата Sargezzz:
подскажите, а как вывести на экран командной строки количество найденных процессов? »
Код: Выделить весь код
for /f "tokens=1 delims=" %%# in ('qprocess^|find /i /c /n "proc.exe"') do (
    set number=%%#
)
pause

-------
Кто реку перешел, тому росы бояться ни к чему

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:45, 03-04-2018 | #5


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Казбек, по всей видимости он у меня смотрит процессы под моим пользователем, а как смотреть процессы под всеми пользователями? или под определенным?

Отправлено: 19:45, 03-04-2018 | #6


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата Sargezzz:
а как вывести на экран командной строки количество найденных процессов? »
Оно высчитывается в процессе работы пакетных файлов.

Можете просто посмотреть глазками:
Код: Выделить весь код
tasklist.exe /fi "IMAGENAME eq proc.exe"
или:
Код: Выделить весь код
qprocess.exe | find.exe /i "proc.exe"
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:47, 03-04-2018 | #7


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, по всей видимости он у меня смотрит процессы под моим пользователем, а как смотреть процессы под всеми пользователями? или под определенным?

Отправлено: 19:50, 03-04-2018 | #8


Аватара для Казбек

Ветеран


Сообщения: 5380
Благодарности: 1875

Профиль | Отправить PM | Цитировать


Цитата Sargezzz:
или под определенным? »
  1. Код: Выделить весь код
    TASKLIST /v /fi "username eq Sargezzz"
  2. Насчет той утилиты, что использовал я, рекомендую к ознакомлению примеры: Windows Server 2008 – How to use the Query Process command

Цитата Sargezzz:
он у меня смотрит процессы под моим пользователем »
Да, вы правы:
Цитата:
If you do not specify a process with UserName, SessionName, or SessionID, then QUERY PROCESS will return only the processes that belong to the current user.

-------
Кто реку перешел, тому росы бояться ни к чему

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:08, 03-04-2018 | #9


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Sargezzz, с tasklist.exe у меня работает. Для qprocess.exe попробуйте изменить строку на:
Код: Выделить весь код
for /f "tokens=1 delims=" %%# in ('qprocess.exe * ^|find /i /c /n "proc.exe"') do (
или:
Код: Выделить весь код
for /f "tokens=1 delims=" %%# in ('qprocess.exe "proc.exe" ^|find /i /c /n "proc.exe"') do (
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:09, 03-04-2018 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - bat файл, для проверки колва процессов запущенных

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] bat файл для запуска 2 bat файла по очереди с интервалом 3 часа Dauren_mj Хочу все знать 3 05-02-2018 11:24
CMD/BAT - Завершение процессов запущенных 2 или более штук nail1987 Скриптовые языки администрирования Windows 3 13-09-2015 17:45
VBS/WSH/JS - Мониторинг запущенных процессов fontenette Скриптовые языки администрирования Windows 4 28-11-2014 10:36
CMD/BAT - Проверка и перезапуск запущенных процессов 41275jur Скриптовые языки администрирования Windows 6 23-07-2013 14:23
CMD/BAT - [решено] bat файл для проверки запущенной программы, в имени есть пробелы aculeus Скриптовые языки администрирования Windows 2 05-06-2013 17:19




 
Переход