【发布时间】:2014-10-21 19:34:53
【问题描述】:
我有多个相同的进程在运行,它们都使用不同的用户名。是否可以杀死所述进程的所有实例,但只针对 1 个用户名?
例如,您可以看到: http://gyazo.com/85a627dfb9c775841047c4feaca3c8cf
假设我只想杀死用户拥有的进程:TCAGame_Svc50 这可能吗?
谢谢
【问题讨论】:
标签: batch-file
我有多个相同的进程在运行,它们都使用不同的用户名。是否可以杀死所述进程的所有实例,但只针对 1 个用户名?
例如,您可以看到: http://gyazo.com/85a627dfb9c775841047c4feaca3c8cf
假设我只想杀死用户拥有的进程:TCAGame_Svc50 这可能吗?
谢谢
【问题讨论】:
标签: batch-file
已编辑我无法在我的 XP 上运行以下代码(文档说它应该可以运行,可能是我的电脑),但在 windows 7 中它可以正常运行
taskkill /im arma2oaserver.exe /fi "username eq TCAGame_Svc50" /f
原始答案更详细,但在 XP 上对我有用
@echo off
setlocal enableextensions disabledelayedexpansion
set "executable=arma2oaserver.exe"
set "user=TCAGame_Svc50"
for /f "tokens=2 delims=," %%a in ('
tasklist /fi "imagename eq %executable%" /v /fo:csv /nh 2^>nul
^| find /i "%user%"
') do taskkill /pid %%~a /f
tasklist 将根据可执行名称 (/fi)、csv 格式 (/fo:csv)、不带标题 (/nh) 和详细模式 (v) 检索进程列表以包含用户名.进程列表通过find 命令过滤,仅检索所需用户的进程列表。结果列表通过for 命令处理,该命令将使用逗号作为分隔符,对于每条记录,将检索第二个字段(processID)。 taskkill 将使用检索到的 pid 终止进程。
【讨论】: