Будь-який спосіб написати файл Windows .bat для знищення процесів? [зачинено]


114

Кожен раз, коли я включаю свою розробницьку машину, мені доводиться вбивати 10+ процесів за допомогою диспетчера завдань або будь-якого іншого додатка для управління процесами просто для отримання гідної продуктивності свого IDE. Так, це процеси з програм, які моя компанія встановлює на мою машину для безпеки та відповідності. Що я хотів би зробити, це мати .bat файл чи сценарій, який я можу вбити процес, про який йде мова.

Хтось знає, як це зробити?


Це може бути зручно і тоді, коли в середовищі автоматизації і підпроцес, який утікає, потрібно припинити, якщо він не зможе закінчити або відповісти за гідну кількість часу.
Danny Staple

Я опублікував це посилання на запитання для всіх своїх прямих колег, тому що ми розробляємо 20 S / W розробників у компанії, яка має 2000 інженерів (що робить CAD). Ми постійно боремось з управлінням ІТ-адміністрування, тому що (через політику безпеки) ми майже не можемо виконати свою роботу ... (Це технічно не допомагає, але приємно почути, що інші розробники S / W, схоже, мають подібні проблеми .)
Scheff

Відповіді:


171

Це можна зробити за допомогою ' taskkill '. За допомогою параметра / IM ви можете вказати назви зображень.

Приклад:

taskkill /im somecorporateprocess.exe

Ви також можете це зробити, щоб " примусити " вбити:

Приклад:

taskkill /f /im somecorporateprocess.exe

Просто додайте один рядок за процес, який ви хочете вбити, збережіть його як .bat файл та додайте у вашу каталог запуску. Проблема вирішена!

Якщо це застаріла система, PsKill зробить те саме.


34
LOL - "somecorporateprocess.exe" В значній мірі підсумовує відключення корпоративних ІТ від команд розробників.
клен

8
Я мав успіх, taskkill /F /IM <processname.exe> /Tщоб змусити закрити всі процеси за їх назвою.
Бендж

не працює над програмою win10 для процесу вбивства. весь фоновий процес у програмі win 10 з назвою, RuntimeBroker.exeа при спробі вбити нічого не сталося.
Мостафа

106
taskkill /f /im "devenv.exe"

це насильно вб’є Pid із назвою exe "devenv.exe"

еквівалентно -9 команді nix'y kill


3
Це не спрацювало, поки я не додав прапор / f до команди. Дякую!
Кухня Дениса М.

4
Це знищить ВСІ записи із заданим іменем. Особливо зручно, коли програма відтворює сигнал і відкриває notepad.exe 1000 разів у фоновому режимі:] * ах *
Річард де Віт

8

Оскільки TASKKILL може бути недоступним у домашніх / базових виданнях Windows, тут є деякі варіанти:

TSKILL processName

або

TSKILL PID

Майте на увазі, що processNameвін не повинен мати .exeсуфікс і має обмеження до 18 символів.

Ще один варіант WMIC:

wmic Path win32_process Where "Caption Like 'MyProcess%.exe'" Call Terminate

wmic пропонує навіть більшу гнучкість, ніж завдання за допомогою своїх SQL-подібних wmic Path win32_process getматчерів %.


5

Я припускаю, що як розробник у вас є певний ступінь адміністративного контролю над вашою машиною. Якщо так, з командного рядка запустіть msconfig.exe. Ви можете видалити багато процесів навіть із запуску, тим самим позбавляючи від необхідності знищувати їх вищезазначеними рішеннями.


5

Отримайте авторів від Марка Русиновича, хлопця Sysinternals, який відкрив Sony Rootkit ... Найкраще програмне забезпечення, яке я коли-небудь використовував для очищення речей, які починаються автоматично.


4

Завантажте PSKill . Напишіть пакетний файл, який викликає його для кожного процесу, який ви хочете мертвим, передаючи ім'я процесу для кожного.



0

Будь ласка, знайдіть нижченаведену логіку, де це працює за умовою.

Якщо ми просто зателефонуємо taskkill /im applicationname.exe, це вб'є лише в тому випадку, якщо цей процес запущений. Якщо цей процес не запущений, він видасть помилку.

Так як перевірка перед тим, takskillяк викликається, може бути зроблена перевірка, щоб переконатися, що виконання taskkillбуде виконано, лише якщо процес запущений, щоб він не видав помилки.

tasklist /fi "imagename eq applicationname.exe" |find ":" > nul

if errorlevel 1 taskkill /f /im "applicationname.exe"

1
простіше просто перенаправити повідомлення про помилку taskkillнаnul
Стефан

0

Тут я написав приклад команди, яку можна вставити в cmdкомандний рядок і написана для chrome.exe.

FOR /F "tokens=2 delims= " %P IN ('tasklist /FO Table /M "chrome*" /NH') DO (TASKKILL /PID %P)

Команда for просто приймає всі PIDперелічені нижче tasklistкоманди і виконує TASKKILL /PIDвсіPID

tasklist /FO Table /M "chrome*" /NH

Якщо ви використовуєте для в пакетному файлі, просто використовуйте %% P замість% P

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.