Есть ли способ написать файл Windows .bat для завершения процессов?

StackOverflow https://stackoverflow.com/questions/33822

  •  09-06-2019
  •  | 
  •  

Вопрос

Поэтому каждый раз, когда я включаю машину разработки, принадлежащую моей компании, мне приходится завершать более 10 процессов с помощью диспетчера задач или любого другого приложения для управления процессами, чтобы получить достойную производительность от моей IDE.Да, это процессы из программ, которые моя компания устанавливает на мою машину в целях безопасности и соответствия требованиям.Что я хотел бы сделать, так это иметь файл .bat или какой-то сценарий, который я мог бы просто запустить и уничтожить соответствующие процессы.

Кто-нибудь уже знает, как это сделать?

Это было полезно?

Решение

Вы можете сделать это с помощью 'taskkill'. С помощью параметра / IM вы можете указать имена изображений. Пример:

  

taskkill / im somecorporateprocess.exe

Вы также можете сделать это, чтобы «принудительно» убить:

  

taskkill / f / im somecorporateprocess.exe

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

Если это устаревшая система, PsKill сделает то же самое .

Другие советы

taskkill /f /im "devenv.exe"

это принудительно уничтожит pid с именем exe "devenv.exe"

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

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

TSKILL processName

или

TSKILL PID

Имейте в виду, что processName не должно иметь .exe суффикс и ограничен 18 символами.

Другой вариант: WMIC :

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

wmic предлагает еще большую гибкость, чем Taskkill. wmic Path win32_process get вы можете увидеть доступные поля, которые вы можете фильтровать.

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

Получите автозапуска от Марка Руссиновича, парня из Sysinternals, который обнаружил Sony Rootkit ... Лучшее программное обеспечение, которое я когда-либо использовал для очистки вещей, которые запускаются автоматически.

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

Используйте Powershell! Встроенные командлеты для управления процессами. Примеры здесь (сложно путь), здесь (встроенный) и здесь (подробнее).

Найдите приведенную ниже логику, где это работает при условии.

Если мы просто вызовем taskkill / im applicationname.exe , он будет убит, только если этот процесс запущен. Если этот процесс не запущен, он выдаст ошибку.

Чтобы проверить перед вызовом takskill , можно выполнить проверку, чтобы убедиться, что execute taskkill будет выполняться только в том случае, если процесс запущен, чтобы он выиграл не выдает ошибку.

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

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

Здесь я написал пример команды, которую можно вставить в приглашение командной строки 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

Если вы используете for в командном файле, просто используйте %% P вместо% P

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top