0 / 0 / 0
Регистрация: 06.09.2016
Сообщений: 9
1

Завершать процессы, которые длятся более 2-х минут

12.11.2016, 18:32. Показов 5144. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день , обыскался что то я совсем

есть Процессы Macros.exe их несколько , некоторые зависают останавливаются что нагружает систему , другие параллельно работают
НАДО завершить эти Macros.exe НО ТОЛЬКО ТЕ КОТОРЫЕ ДЛЯТСЯ БОЛЕЕ 2 МИНУТ , ну завершать зависающие и чтобы не трогать параллельно работающие

пробовал команды
Windows Batch file
TASKKILL /F /FI "CPUTIME gt 00:02:00" /FI "IMAGENAME eq iMacros*"
и
Windows Batch file
TASKKILL.exe  /F /FI "CPUTIME ge 00:02:00" /FI iMacros.exe
ОБЕ НЕ РАБОТАЮТ

в значении "CPUTIME ge 00:02:00" 00:02:00 получается 2 минуты
МОЖЕТ Я НЕ ПРАВИЛЬНО УКАЗАЛ ЗНАЧЕНИЕ ? я пробывал 00:02:00 0:02:0 02:00 2:00
ВОБЩЕМ НЕ РАБОТАЕТ ВООБЩЕ , НИКАК НИ В КАКОМ ЗНАЧЕНИИ

перепробовал все Операторы
eq – определяет равенство заданному значению
ne - определяет неравенство заданному значению
gt - Больше указанного числа
lt - Меньше указанного числа
ge - Больше или равно указанному числу
le - Меньше или равно указанному числу

Вобщем получилось только Завершить ВСЕ ПРОЦЕССЫ под именем Macros.exe
но ТЕ которые РАБОТАЮТ БОЛЬШЕ 2х минут НЕ ПОЛУЧАЕТСЯ

ПОМОГИТЕ буду Признателен
решение вопроса желательно сделать в BAT
не владею пока другими языками\софтом
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2016, 18:32
Ответы с готовыми решениями:

Найти слова, которые состоят из 3х и более букв и имеют более 2х гласных
Написать функцию, которая выводит слова, которые состоят из 3 х и более букв и имеющих более 2х...

Не могу играть в игры более 10 минут
У меня такая фигня происходит( Когда играю в игры, всё идёт отлично, но поиграв минут 10, на...

Найти и вывести на экран все элементы, которые которые повторяются более N/2 раз
#include "stdafx.h" #include <iostream> #include <fstream> using namespace std; int _tmain() {...

Необходимо разбить данные даты на интервалы с дистанцией не более 15 минут
Подскажите, пожалуйста, как реализовать такую задачу: - Имеется БД в mysql. - в БД занесен...

12
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
12.11.2016, 19:18 2
Завершать процессы, которые длятся более 2-х минут


???
1
0 / 0 / 0
Регистрация: 06.09.2016
Сообщений: 9
12.11.2016, 20:01  [ТС] 3
вот через Операторы lt le НАХОДИТ
а через gt ge НЕ НАХОДИТ

но мне надо Завершать Процессы которые ДЛЯТСЯ ОТ 2х минут( gt ge) а не ДО 2х минут ( lt le )
0
Любознательный
5650 / 1668 / 311
Регистрация: 10.03.2016
Сообщений: 3,786
12.11.2016, 22:07 4
Цитата Сообщение от VSERODcom Посмотреть сообщение
ТОЛЬКО ТЕ КОТОРЫЕ ДЛЯТСЯ БОЛЕЕ 2 МИНУТ
А откуда появилась уверенность в том, что CPUTIME - длительность работы процесса? Это ведь не так...

Цитата Сообщение от VSERODcom Посмотреть сообщение
завершать зависающие
Windows Batch file
1
taskkill.exe /f /fi "status eq not responding"
Правда вариант этот слишком кардинальный...
Лучше, например, tasklist-ом отфильтровать зависшие образы (можно с подробностями по ключу /v), затем по имени образа и по PID (отобрать в цикле необходимые) уже убивать процессы...
1
0 / 0 / 0
Регистрация: 06.09.2016
Сообщений: 9
12.11.2016, 22:36  [ТС] 5
Благодарю , позже попробую если получится, это надо писать целый цикл , нету знаний в написании
я думал найти простую команду для cmd Завершать Процессы ПО ДОЛГОТЕ Исполнения ?
ещё раз спс
0
Любознательный
5650 / 1668 / 311
Регистрация: 10.03.2016
Сообщений: 3,786
12.11.2016, 23:12 6
Цитата Сообщение от VSERODcom Посмотреть сообщение
Завершать Процессы ПО ДОЛГОТЕ Исполнения
Напрямую, во встроенных средствах cmd, таких возможностей нет, но если очень хочется, то можно воспользоваться другими инструментами, у которых возможностей побольше. Например powershell или pslist и pskill из комплекта PSTool, компании sysinternals...
Но в любом случае, придется, всё равно, помимо самих программ, создавать сценарий для "корректного убийства" необходимых процессов.
1
0 / 0 / 0
Регистрация: 06.09.2016
Сообщений: 9
13.11.2016, 14:22  [ТС] 7
понял Благодарю
тогда подскажите как например через powershell или через другой софт
как выглядит команда Убивающая Процессы "1.exe" которые Работают Более 2х минут

Добавлено через 18 минут
вот в powershell можно ли Завершать процессы через показатель elapsed time ?
киньте пример кода надо чтобы Завершал процессы "1.exe" через показатель "Время работы Процесса 1.ехе более 2х минут"
спс
0
Любознательный
5650 / 1668 / 311
Регистрация: 10.03.2016
Сообщений: 3,786
13.11.2016, 19:34 8
Лучший ответ Сообщение было отмечено VSERODcom как решение

Решение

Цитата Сообщение от VSERODcom Посмотреть сообщение
пример кода надо чтобы Завершал процессы "1.exe" через показатель "Время работы Процесса 1.ехе более 2х минут"
На примере notepad.exe:
Windows Batch file
1
2
3
4
5
@echo off
echo Выполняем...
powershell /nologo "ps notepad|%%{if(((date) - $_.starttime).Minutes -gt 2){kill -id $_.id}}"
echo Готово.
pause
1
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
13.11.2016, 21:50 9
Лучший ответ Сообщение было отмечено vavun как решение

Решение

На примере кода от greg zakharov
можно доработать требуемое и без PS
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
setlocal
 for %%a in (%*) do set/a n+=1
 if %n% gtr 1 echo:Index is out of range.&goto:eof
 for /f "tokens=3 delims=.," %%a in ('typeperf "\Процесс(%1)\Прошло времени (сек)" -sc 1^|findstr/rc:"\:"') do set "s=%%~a"    
 set/a "ss=s%%60", "s/=60", "mm=s%%60", "s/=60", "hh=s%%24", "dd=s/24"
 if %hh% lss 10 set "hh=0%hh%"
 if %mm% lss 10 set "mm=0%mm%"
 if %ss% lss 10 set "ss=0%ss%"
 echo:%dd%.%hh%:%mm%:%ss%
endlocal
exit
покажет кол-во времени работы с момента запуска

Запуск: "name.bat" Имя процесса, например: name.bat notepad
2
0 / 0 / 0
Регистрация: 06.09.2016
Сообщений: 9
13.11.2016, 23:44  [ТС] 10
Цитата Сообщение от YuS_2 Посмотреть сообщение
На примере notepad.exe:
Windows Batch file
1
2
3
4
5
@echo off
echo Выполняем...
powershell /nologo "ps notepad|%%{if(((date) - $_.starttime).Minutes -gt 2){kill -id $_.id}}"
echo Готово.
pause
Благодарю помогла эта команда да
только вот в окне cmd требует Подтвердить Выполнение нажатием "Y"
как сделать автоматически все ?

Добавлено через 20 минут
нашел, вроде работает эта команда
net stop tapisrv /y
Всем Спасибо и Благодарю за СОдействия !
0
Любознательный
5650 / 1668 / 311
Регистрация: 10.03.2016
Сообщений: 3,786
14.11.2016, 08:17 11
Лучший ответ Сообщение было отмечено VSERODcom как решение

Решение

Цитата Сообщение от alpap Посмотреть сообщение
покажет кол-во времени работы с момента запуска
Процессов несколько. Поэтому помимо просмотра времени работы, ещё необходимо посчитать время работы каждого процесса, сравнить его с числом, выдернуть PID и убить процесс... т.е. код ещё надо составлять.
В PS это заняло одну строчку кода...

Цитата Сообщение от VSERODcom Посмотреть сообщение
только вот в окне cmd требует Подтвердить Выполнение нажатием "Y"
как сделать автоматически все ?
В команду kill надо добавить параметр -force:
Windows Batch file
1
2
3
4
5
@echo off
echo Выполняем...
powershell /nologo "ps notepad|%%{if(((date) - $_.starttime).Minutes -gt 2){kill -id $_.id -force}}"
echo Готово.
pause
2
0 / 0 / 0
Регистрация: 06.09.2016
Сообщений: 9
14.11.2016, 18:48  [ТС] 12
Спасибо Большое YuS_2
вроде работает +
0
1 / 1 / 0
Регистрация: 18.08.2011
Сообщений: 6
30.08.2022, 13:12 13
Windows Batch file
1
2
3
4
5
@echo off
echo Выполняем...
powershell /nologo "ps notepad|%%{if(((date) - $_.starttime).Minutes -gt 2){kill -id $_.id -force}}"
echo Готово.
pause
Цитата Сообщение от YuS_2 Посмотреть сообщение
В команду kill надо добавить параметр -force
С двумя процентами %% код не работает. С одним - вроде да.

И поправочка - этот код верен для процессов с временем жизни меньше часа. Лучше использовать TotalMinutes вместо Minutes
0
30.08.2022, 13:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.08.2022, 13:12
Помогаю со студенческими работами здесь

Все usb устройства стали долго определяться (от 1 и более минут)
Доброго времени суток. Почему то все usb устройства стали долго определяться (от 1 и более минут)....

Вывести данные о фильмах начинающихся после 18 00 и продолжительностью более 1 часа 40 минут
Вывести данные о фильмах начинающихся после 18 00 и продолжительностью более 1 часа 40 минут нужен...

Вывести данные о фильмах начинающихся после 18 00 и продолжительностью более 1 часа 40 минут
Есть код, только на C# using System; using System.Collections.Generic; using System.Linq; using...

Процессы, которые сильно грузят ЖД
Купил ноутбук 3 месяца назад: Acer Aspire e 15 intel core i7, память 8гб, GeForce 940mx. В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru