특정 명령 행으로 모든 프로세스를 종료하는 명령 행 유틸리티가 있습니까?
예를 들어 "-jar selenium-server.jar"를 포함하는 명령 행으로 "java.exe"라는 모든 프로세스를 종료하십시오. 이것은 프로세스 탐색기를 통해 가능합니다.
특정 명령 행으로 모든 프로세스를 종료하는 명령 행 유틸리티가 있습니까?
예를 들어 "-jar selenium-server.jar"를 포함하는 명령 행으로 "java.exe"라는 모든 프로세스를 종료하십시오. 이것은 프로세스 탐색기를 통해 가능합니다.
답변:
Windows XP에서는 WMI 콘솔 인 WMIC를 쉽게 사용할 수 있습니다 . 명령 propt에서 다음을 입력하십시오.
wmic Path win32_process Where "CommandLine Like '%-jar selenium-server.jar%'" Call Terminate
편집하다:
Aviator의 포트와 마찬가지로 별칭 ' process '를 전체 경로 ( ' path win32_process ')로 바꿨습니다 . 이 별명은 모든 OS에서 선언되지 않을 수 있습니다.
Get-Process 및 StartInfo.Arguments를 사용하여 원하는 프로세스에서 PowerShell 로이 작업을 수행 할 수 있다고 생각합니다.
$procs = Get-Process java
foreach($proc in $procs)
{
if($proc.StartInfo.Arguments -contains "-jar selenium-server.jar")
{
kill $proc
}
}
(나는 그것을 완전히 테스트하지는 않았지만 제대로 작동하도록 조정할 수 있어야합니다)
Brain의 PowerShell 스크립트 변형을 사용합니다 .
명령 행 및 기타 정보도 출력됩니다.
$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))..."
}
}