Belirli bir komut satırıyla tüm işlemleri öldüren bir komut satırı yardımcı programı var mı?
Örneğin, "java.exe" adlı tüm işlemleri "-jar selenium-server.jar" içeren bir komut satırıyla öldür. Bu işlem gezgini ile mümkündür.
Belirli bir komut satırıyla tüm işlemleri öldüren bir komut satırı yardımcı programı var mı?
Örneğin, "java.exe" adlı tüm işlemleri "-jar selenium-server.jar" içeren bir komut satırıyla öldür. Bu işlem gezgini ile mümkündür.
Yanıtlar:
Windows XP'de, bunu kolayca WMI Konsolu olan WMIC ile yapabilirsiniz . Bir komut satırından aşağıdakini yazın:
wmic Path win32_process Where "CommandLine Like '%-jar selenium-server.jar%'" Call Terminate
Düzenle:
Ben takma adıyla 'yerini sürecini tam yolu (' tarafından ' yol win32_process Pilot limanı olduğu gibi'). Bu takma ad her işletim sisteminde bildirilmeyebilir.
İçinde WMIC komutu olan bir Windows sürümü kullanıyorsanız. Bunu deneyebilirsin
wmic path win32_process Where "Caption Like '%java.exe%' AND CommandLine Like '%selenium.jar%'" get ProcessId|more +1
more +1
Üstbilgi içeren birinci çizgi ortadan kaldırır ve tek başına PID basar. Selenium.jar içeren birden fazla java işlemi varsa, bu satır başına bir PID döndürür.
İstediğiniz işlemde Get-Process ve StartInfo.Arguments kullanarak bunu PowerShell ile yapabileceğinizi düşünüyorum.
$procs = Get-Process java
foreach($proc in $procs)
{
if($proc.StartInfo.Arguments -contains "-jar selenium-server.jar")
{
kill $proc
}
}
(Bunu tamamen test etmedim, ancak çalışmasını sağlamak için ince ayar yapmalısınız)
Güç kalkanı:-
$oProcs = get-process explorer;foreach ($oProc in $oProcs){if ($oProc.Path.Contains('C:\Windows')) {Stop-Process $oProc.Id}}
Brain'in PowerShell betiğinin bir varyasyonunu kullanıyorum .
Bu komut satırı ve diğer bilgileri de verir.
$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))..."
}
}
Başka bir powershell varyasyonu. Temelde aynı, yazmak ve hatırlamak belki de daha kolay. -Match aslında düzenli bir ifade alabilir.
get-wmiobject win32_process | where commandline -match selenium-server.jar
| remove-wmiobject