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

Завершение процесса без запуска окна командной строки

05.06.2018, 07:18. Показов 2618. Ответов 13
Метки нет (Все метки)

Нужен батник который бы автоматически киллял процесс без запуска самого батника(чтобы он быстро нашёл нужный процесс и убил его).

Добавлено через 46 минут
кто нибудь поможет???
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2018, 07:18
Ответы с готовыми решениями:

Завершение процесса по заголовку окна
Всем привет! Парни помогите реализовать мою задачу. Задача такова: Завершать процессы по оконному...

Завершение процесса cmd по имени окна
Здравствуйте все. Фрагмент исполняемого bat файла: tasklist /v /fi "imagename eq cmd.exe" /fo...

Завершение процесса их командной строки
Всем привет. Ребята, помогите. Короче, такая ситуация: мне нужно с командной строки ввести имя...

Завершение процесса до запуска программы
Используя код Process.Start() заметил один косяк. Так как у меня Win7, при запуске он спрашивает...

13
29 / 25 / 9
Регистрация: 26.05.2017
Сообщений: 259
05.06.2018, 08:03 2
taskkill /?

И запускай батник через .vbs скрипт

Visual Basic
1
2
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "BATNIC.bat", 0, false
Тогда он запуститься без GUI
2
0 / 0 / 0
Регистрация: 17.03.2018
Сообщений: 7
05.06.2018, 09:54  [ТС] 3
ок,ну запустится он без GUI,но как сам батник сделать по правильному-чтобы он следил за нужным процессом(когда он появится) и убил его?
0
4205 / 2083 / 653
Регистрация: 26.04.2015
Сообщений: 6,720
05.06.2018, 14:35 4
Цитата Сообщение от MorkovkaVSalate Посмотреть сообщение
чтобы он следил за нужным процессом(когда он появится) и убил его?
такого не было в условии, как вы поставили задачу так вам и ответили
под новые условия
Windows Batch file
1
2
3
@echo off
set "p=Skype.exe"
cmd /c for /l %%i in () do @tasklist /fi "imagename eq %p%"^|findstr /v :^&^& (taskkill /f /im "%p%"^& exit /b)^&^>nul timeout /t 1 /nobreak
0
0 / 0 / 0
Регистрация: 17.03.2018
Сообщений: 7
05.06.2018, 16:26  [ТС] 5
благодарю,но мне не хочется его бесконечно открывать(и vbs и bat).можно чтоб он сам всё делал в фоновом режиме(не открывать его)?
0
29 / 25 / 9
Регистрация: 26.05.2017
Сообщений: 259
05.06.2018, 16:46 6
Windows Batch file
1
2
3
4
5
@echo off
set "p=Skype.exe"
:A
cmd /c for /l %%i in () do @tasklist /fi "imagename eq %p%"^|findstr /v :^&^& (taskkill /f /im "%p%"^& exit /b)^&^>nul timeout /t 1 /nobreak
GoTo :A
Запустите это батник один раз через .vbs скрипт, и он будет в вечном цикле убивать чего-то там.
0
4205 / 2083 / 653
Регистрация: 26.04.2015
Сообщений: 6,720
05.06.2018, 17:39 7
Лучший ответ Сообщение было отмечено Joey как решение

Решение

Цитата Сообщение от MorkovkaVSalate Посмотреть сообщение
но мне не хочется его бесконечно открывать
тут как посмотреть

этот код при запуске работает все время, ищет процесс для убийства, как только появится процесс - убивает его и закрывается (выделен выход)

@echo off
set "p=Skype.exe"
cmd /c for /l %%i in () do @tasklist /fi "imagename eq %p%"^|findstr /v :^&^& (taskkill /f /im "%p%"^& exit /b)^&^>nul timeout /t 1 /nobreak

если убрать выделенное и запустить код, то он и будет всегда (пока не убить уже его процесс или не выключить систему) пахать, убивая каждый появляющийся процесс с этим именем. Если нужен его запуск и после перезагрузки или вкл системы, можно с помощью планировщика сделать задачу, по скрытному запуску решение вам дали, можно и еще с десяток найти на просторах.
2
0 / 0 / 0
Регистрация: 17.03.2018
Сообщений: 7
06.06.2018, 06:44  [ТС] 8
Всё благодарю feodor и alpap за решение!

Добавлено через 36 минут
И да странно что теперь после включения батника появляется новый проесс findstr.exe
0
0 / 0 / 0
Регистрация: 25.07.2018
Сообщений: 4
25.07.2018, 16:34 9
Цитата Сообщение от alpap Посмотреть сообщение
cmd /c for /l
А как можно избавится от вызова еше одного cmd ?
А как можно включить в проверку еше один процесс ?
В идеале расширить цикл чтобы было так

set prog1=calc.exe
set prog2=calc2.exe

set prog0=notepad.exe

:R
tasklist /fo csv |>nul findstr /i (ишем prog1 то set task1="1" ; ишем prog2 то set task2="1" ; ишем prog0 то set task0="1" )

if not %task1%=="1" (
if not %task2%=="1" (
echo "-----------OK --------" & (if %task0% =="0" start %prog0%)
timeout 5
goto R
))
echo "------killll all------ " & taskkill /im %prog0% /f
:END
Exit
0
0 / 0 / 0
Регистрация: 25.07.2018
Сообщений: 4
26.07.2018, 12:14 10
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo on
setlocal enableextensions enabledelayedexpansion
 
 
:BEGIN
tasklist /NH | findstr /ir /c:"^note.*\.exe.*" /c:"^aimp.exe.*" /c:"^tc.exe.*" >nul
if "!errorlevel!"=="0" (taskkill /f /t /im firefox.exe 2>nul) else (tasklist /NH | findstr /ir /c:"^firefox.exe.*" || start "" "C:\Program Files\Firefox\firefox.exe")
timeout 1
goto :BEGIN
 
exit /b
вот нашел ответ, на его основе доделал скрипт.
работает
А как можно его еше улучшить? можно ли убрать двойной вызов tasklist ?
0
412 / 175 / 26
Регистрация: 11.03.2018
Сообщений: 746
26.07.2018, 13:30 11
Цитата Сообщение от EV3432 Посмотреть сообщение
А как можно еше улучшить?
Взять исходник pskill.exe от Марка Русиновича, выдернуть часть ответственную за убийство и оформить
в качестве сервиса Windows.
0
0 / 0 / 0
Регистрация: 25.07.2018
Сообщений: 4
26.07.2018, 16:01 12
спасибо.
я вот о чем, чтобы не вызывать по 20 раз tasklist
Можно ли как то отправить
Windows Batch file
1
tasklist /NH | findstr /ir /c:"^note.*\.exe.*" /c:"^aimp.exe.*" /c:"^tc.exe.*" >nul
в переменную или переменные (каждый процесс в свою переменную)
для последующего разбора
п 1 интересует 4 процесса , 3 из них, как в примере выше, по ИЛИ приводят к закрытию 4 го.
п 2 при закрытии их, берем из переменной наличие 4 го процесса и если его нету то запускаем.
п 3 Если есть ждем или п1 или п2 (закрытие 4 го и его запуск), что то там пишем в лог.
0
412 / 175 / 26
Регистрация: 11.03.2018
Сообщений: 746
26.07.2018, 16:32 13
для системного программирования подходы( читай возможности) cmd так же не хороши, как и для
всего остального. Поэтому powershell.
0
0 / 0 / 0
Регистрация: 25.07.2018
Сообщений: 4
27.07.2018, 08:57 14
Windows Batch file
1
tasklist /fo csv |>nul findstr /i "calc.exe notepad1.exe taskmgr.exe notepad.exe" > %temp%\taskll.txt
вот такой альтернативный вариант. ))
txt разбираем.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.07.2018, 08:57

Перехват запуска процесса и его завершение
Всем привет! Я пишу программу на c# и возник следующий вопрос: как сделать, что бы когда программа...

Возможность запуска из командной строки
Привет всем! У меня есть условие в задании. "Программа должна представлять исполняемый файл и...

Имитация запуска программы из командной строки
В своем проекте на C# под .Net 2.0 я использую Microsoft.VisualBasic.Interaction.Shell() для...

Пустое окно командной строки после запуска кода
Доброго времени суток! Мне необходимо найти собственные векторы и собственные числа полученной...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.