Убейте процесс с помощью определенной «командной строки» из командной строки
Есть ли утилита командной строки, которая убивает все процессы с помощью определенной командной строки?
Например, запустите все процессы с именем «java.exe» с помощью командной строки, содержащей «-jar selenium-server.jar». Это возможно через проводник процессов.
- Возможно ли определить местоположение файла при его запуске?
- Как копировать символические ссылки?
- Повышенная подсказка командной строки не может получить доступ к общим дискам
- Что именно происходит, когда вы используете команду «copy / b»?
- Простой встроенный способ шифрования и дешифрования файла на Mac через командную строку?
- Получить модель видеокарты через командную строку в Windows
- Как выполнить командную строку Windows в фоновом режиме?
- Как изменить эмулятор терминала по умолчанию на Windows (cmd)?
- Проверка использования пропускной способности конкретного приложения или процесса в Windows 7
- Как изменить цветовую схему командной строки?
- Изменение разрешений для файлов Windows 7 из командной строки
- Использование Google Music Manager в Linux из командной строки
- Как предотвратить закрытие командной строки после выполнения?
В Windows XP вы можете легко выполнить WMIC, WMI Console. В командной строке введите следующее:
wmic Path win32_process Where "CommandLine Like '%-jar selenium-server.jar%'" Call Terminate
Редактировать:
Я заменил псевдоним « процесс » на его полный путь (« путь win32_process »), как и порт Авиатора. Этот псевдоним не может быть объявлен в каждой ОС.
Если вы используете версию Windows, в которой есть команда WMIC. Вы можете попробовать это
wmic path win32_process Where "Caption Like '%java.exe%' AND CommandLine Like '%selenium.jar%'" get ProcessId|more +1
Чем more +1
удаляет первую строку, содержащую заголовок, и печатает только ПИД. Если есть несколько процессов java, содержащих selenium.jar, тогда это вернет один PID в строке.
Я считаю, что вы можете сделать это с помощью PowerShell, используя Get-Process и StartInfo.Arguments для процесса, который вы хотите.
$procs = Get-Process java foreach($proc in $procs) { if($proc.StartInfo.Arguments -contains "-jar selenium-server.jar") { kill $proc } }
(Я не тестировал это полностью, но вы должны иметь возможность настроить его, чтобы он работал)
Powershell: –
$oProcs = get-process explorer;foreach ($oProc in $oProcs){if ($oProc.Path.Contains('C:\Windows')) {Stop-Process $oProc.Id}}
Простой однострочный вкладыш:
(Get-WmiObject win32_process -filter "Name='java.exe' AND CommandLine LIKE '%-jar selenium-server.jar%'").Terminate()
Я использую вариант сценария PowerShell от Brain .
Это также выводит командную строку и другую информацию.
$processes = Get-WmiObject Win32_Process -Filter "name = 'java.exe'" foreach($proc in $processes) { if($proc.CommandLine.Contains("selenium-server.jar")) { Write-Host "stopping proccess $($proc.ProcessId) with $($proc.ThreadCount) threads; $($proc.CommandLine.Substring(0, 50))..." Stop-Process -F $proc.ProcessId } else { Write-Host "skipping proccess $($proc.ProcessId) with $($proc.ThreadCount) threads; $($proc.CommandLine.Substring(0, 50))..." } }
PsKill :
Pskill java.exe