на загрузку процессора влияет очень много факторов и это не выход из положения, особенно в подобном случае, а именно:
-приведенный код написан на 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 @