如何杀死一个进程的名称和创build从一个特定的path使用taskkill?
taskkill / F / IM
当然它不能区分从两个不同位置C:\ Dir1和C:\ Dir2开始的2个进程
tasklist是否有任何切换来获取path名称
taskkill
不能做到这一点。 但是如果可以的话,你可以使用PowerShell:
(Get-WmiObject Win32_Process | Where-Object { $_.Path.StartsWith('C:\Dir1') }).Terminate()
根据乔伊的回答:
wmic Path win32_process Where "CommandLine Like '%-jar selenium-server.jar%'" Call Terminate
这样,当Path为空(不知道为什么)时,我避免了NullReferenceException,并且不需要PowerShell。
参考: https : //superuser.com/questions/52159/kill-a-process-with-a-specific-command-line-from-command-line
使用下面的命令(即使没有PowerShell也可以):
wmic process where ExecutablePath='C:\\Dir1\\image.exe' delete
注:只有在Windows 8上以管理员身份运行wmic
,才能对所有进程执行ExecutablePath
你的情况似乎是当你有不同的路径在机器上安装相同的进程名称的自定义服务。 如果确实是这种情况,您可能有不同的服务名称,可以用作一个额外的过滤器。
请参阅语法:
taskkill /S {REPLACE_WITH_SERVER_IP_OR_NAME} /F /FI "IMAGENAME eq {REPLACE_WITH_PROCESS_NAME}" /FI "SERVICES eq {REPLACE_WITH_SERVICENAME}"
请参阅示例:
taskkill /S 10.10.1.1 /F /FI "IMAGENAME eq tomcat7.exe" /FI "SERVICES eq tomcatServiceEngine"
有关所有可用过滤器的列表,请访问taskkill命令