Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

Ответить
Настройки темы
CMD/BAT - Закрытие процесса при перегрузке процессора

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


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

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


Я в батниках ватник.. На просторах этого форума нашёл следующий код
Код: Выделить весь код
@echo off
set file=%temp%\CPU.tmp
wmic cpu get LoadPercentage > %file%
sort /R %file% /O %file%
for /f "skip=1 tokens=1,*" %%q in (%file%) do set cpu=%%q
echo %cpu%
del %file% /Q
Данный код выводит загрузку процессора в процентах. Мне нужно, чтобы проверка процессора происходила раз в 10 секунд и при загрузке процессора больше чем на 80% происходило убийство определенного процесса (taskkill /f /im cmd.exe)

Отправлено: 18:40, 09-06-2021

 

Ветеран


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

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


на загрузку процессора влияет очень много факторов и это не выход из положения, особенно в подобном случае, а именно:
-приведенный код написан на batch и запускается в окне процесса cmd.exe
-если будет перегрузка мы убьем этот процесс и более уже не сможем контролировать ситуацию - приехали
надо смотреть какой ИМЕННО процесс (возможно запускаемый из с помощью cmd.exe) грузит процессор и убивать его или несколько других тяжелых, не особо нужных сейчас, процессов, играть с приоритетами, чистить систему от мусора, особенно фоновые задачи и автозагрузка, может антивирус выключать или заменить, диск может уже почти весь занят или сильно фрагментирован - масса причин.
вот пара кодов на bat, но которые конечно не будут убивать себя. а нацелены на конкретное прожорливое приложение
Код: Выделить весь код
:: Перезапуск процесса, если потребляет менее 20Мб памяти
@echo off
set "pr=programma.exe"
set "mb=20000"
cmd/c for /l %%# in () do tasklist /fi "imagename eq %pr%" /fi "memusage lt %mb%"^&^& (^>nul 2^>^&1 taskkill /f /im "%pr%"^& start "" "%pr%"^& exit/b)^& ^>nul timeout /t 1 /nobreak
pause
---
Код: Выделить весь код
:: Завершить все одноименные процессы, если сумма занятой ими памяти превышает 120Мб
@echo off
set "spr=calc.exe"
set "sm=120000"

for /f "tokens=2 delims=:" %%a in ('tasklist /fi "imagename eq %spr%" /fo list') do set "m=%%a"
for /f "delims=" %%a in ('"(for %%a in (%m:~0,-3%) do @<nul set /p=%%a)& echo:"') do if %%a gtr %sm% taskkill /f /im %spr%
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:49, 10-06-2021 | #2



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

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


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


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

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


Скорее всего, я не корректно описал задачу. Мне нужно, чтобы при превышении порога загрузки процессора закрывалась определённая программа. В скобках taskkill cmd я написал для примера..

То есть мне нужно:
if загрузка процессора меньше 80%, else ждём 10 секунд и проверяем снова, но if загрузка процессора >80%, то taskkill /f /im %process% и exit

Последний раз редактировалось 1S1N, 10-06-2021 в 14:33.


Отправлено: 13:40, 10-06-2021 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Код: Выделить весь код
powershell -command "while ((gcim Win32_Processor).LoadPercentage -le 80) {sleep 10}; (get-process calculator).Kill()"

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

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

Отправлено: 15:38, 10-06-2021 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Завершение процесса при обнаружении другого процесса infoman1@vk Скриптовые языки администрирования Windows 3 01-02-2018 15:27
CMD/BAT - Закрытие окна или процесса в пакетном файле Спаситель Скриптовые языки администрирования Windows 0 01-09-2015 09:12
CMD/BAT - [решено] закрытие процесса определенного пользователя Ttsume Скриптовые языки администрирования Windows 2 06-02-2014 20:13
CMD/BAT - [решено] проверка на активность и закрытие процесса 43Stealers Скриптовые языки администрирования Windows 3 10-10-2010 13:13
Разное - Точка восстановления Системы пропадает при перегрузке brasilez2010 Microsoft Windows Vista 11 30-12-2009 09:50




 
Переход