Mate um processo com uma “Linha de Comando” específica da linha de comando

22

Existe um utilitário de linha de comando que mata todos os processos com uma linha de comando específica?

Por exemplo mate todos os processos denominados "java.exe" com uma linha de comando que contenha "-jar selenium-server.jar". Isso é possível através do explorador de processos.

    
por ripper234 07.10.2009 / 12:16

7 respostas

31

No Windows XP, você pode fazer isso facilmente com o WMIC, o WMI Console. De um comando propt, digite o seguinte:

wmic Path win32_process Where "CommandLine Like '%-jar selenium-server.jar%'" Call Terminate

Editar:

Eu substituí o alias ' processo ' pelo caminho completo (' caminho win32_process     

por 07.10.2009 / 14:45
8

Se você estiver usando uma versão do Windows que tenha o comando WMIC. Você pode tentar isso

wmic path win32_process Where "Caption Like '%java.exe%' AND CommandLine Like '%selenium.jar%'" get ProcessId|more +1

O more +1 remove a primeira linha que contém o cabeçalho e imprime apenas o PID. Se houver mais de um processo java contendo selenium.jar, isso retornará um PID por linha.

    
por 07.10.2009 / 14:44
3

Acredito que você poderia fazer isso com o PowerShell usando Get-Process e os StartInfo.Arguments no processo que você deseja.

$procs = Get-Process java
foreach($proc in $procs) 
{
    if($proc.StartInfo.Arguments -contains "-jar selenium-server.jar")
    {
        kill $proc
    }
}

(Eu não testei isso completamente, mas você deve ser capaz de fazer isso funcionar)

    
por 07.10.2009 / 14:19
3

Simple one-liner no powershell:

(Get-WmiObject win32_process -filter "Name='java.exe' AND CommandLine LIKE '%-jar selenium-server.jar%'").Terminate()
    
por 14.01.2017 / 01:36
2

Powershell: -

$oProcs = get-process explorer;foreach ($oProc in $oProcs){if ($oProc.Path.Contains('C:\Windows')) {Stop-Process $oProc.Id}}
    
por 25.06.2015 / 22:16
1

Eu uso uma variação do script PowerShell do Brain .

Isto produz a linha de comando e outras informações também.

$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))..."
    }
}
    
por 29.09.2015 / 13:40
-1

PsKill :

pskill java.exe

    
por 07.10.2009 / 12:41