Убить процесс с помощью определенной «командной строки» из командной строки
41864
ripper234
Есть ли утилита командной строки, которая убивает все процессы с определенной командной строкой?
Например, убить все процессы с именем «java.exe» с помощью командной строки, содержащей «-jar selenium-server.jar». Это возможно через Process Explorer.
Я считаю, что оба ответа ниже неправильны, так как вы не просто спрашиваете, как убить процесс .exe, вы спрашиваете, как убить процесс .exe, который содержит определенную командную строку
admintech 15 лет назад
3
Вы говорите только о Windows? Ваши примеры и предоставленные ответы создают впечатление, что вы есть, но вы не указали это.
Nathan Fellman 15 лет назад
2
Можете ли вы объяснить, "как это возможно через Process Explorer?" Я только что запустил java - jar и показывает только java.exe
Sathya 15 лет назад
0
Бьюсь об заклад, он / она имел в виду "Sysinternals Process Explorer"
akira 15 лет назад
0
Sysinternals Process Explorer, конечно. Из него можно просмотреть много информации о запущенных процессах, включая их командную строку.
ripper234 15 лет назад
0
Я имел в виду проводника процессов Sysinternals, а также
Sathya 15 лет назад
0
В Windows XP вы можете легко это сделать с помощью WMIC, консоли WMI . В командной строке введите следующее:
wmic Path win32_process Where "CommandLine Like '%-jar selenium-server.jar%'" Call Terminate
Редактировать:
Я заменил псевдоним ' process ' на полный путь (' путь win32_process '), как и порт Aviator. Этот псевдоним не может быть объявлен на каждой ОС.
+20 Вот и все! Черт побери :) Я тоже следил за WMIC. Но я делал это из консоли WMIC и не мог применить LIKE. Получал синтаксические ошибки, которые заставляли меня использовать '=', что, в свою очередь, заставляло меня вводить все поле CommandLine. Рад, что LIKE работает за пределами консоли WMIC. Надо было подумать об этом. Слава тебе
A Dwarf 15 лет назад
1
отлично работает, когда я звоню из командной строки. У меня есть TeamCity, запускающий процесс, который мне нужно убить в конце сборки. Каким-то образом, когда та же командная строка, вызываемая TeamCity, возвращает «Нет доступных экземпляров», такая же запятая, как и в случае копирования / вставки в cmd, корректно завершает процесс. Есть идеи, почему это будет?
root 10 лет назад
0
Небольшой совет для cmd-файлов - чтобы использовать эту команду из cmd-файла, вы должны заменить escape-символы "%" на второй символ "%", например ... CommandLIne Like "%% - jar ...
sarh 10 лет назад
3
8
vpram86
Если вы используете версию Windows, в которой есть команда WMIC. Вы можете попробовать это
wmic path win32_process Where "Caption Like '%java.exe%' AND CommandLine Like '%selenium.jar%'" get ProcessId|more +1
more +1Удаляет первую строку, содержащую заголовок и печатает PID в одиночку. Если существует более одного процесса Java, содержащего selenium.jar, то это будет возвращать один PID на строку.
3
brien
Я полагаю, что вы можете сделать это с PowerShell, используя Get-Process и StartInfo.Arguments для нужного вам процесса.
вы пропустили 2-ю часть вопроса: «конкретная командная строка» ... не первый java.exe, который приходит вместе с ним ... ни все процессы java.exe
akira 15 лет назад
1