有时 Visual Studio 会让程序在应该关闭后继续运行(甚至在 Visual Studio 本身关闭后也是如此)。当这些程序处于这种“幽灵状态”时,它们不会出现在任务栏或 alt-tab 中。这本身并不算太糟糕,但我正在从外部驱动器运行程序,需要关闭它们才能弹出该驱动器。更糟糕的是,我无法打开任务管理器(它被组策略阻止了)。
我目前使用tasklist
命令手动检查此类程序,然后taskkill
关闭它们。然而,这很麻烦,因为很容易漏掉一个。我见过开关,taskkill /fi
但无法让它工作。
我想要关闭的具有此名称的程序的示例是Program1.vshost.exe
。
简而言之:如何轻松关闭所有名称以“.vshost.exe”结尾的程序?
答案1
此命令可以帮助:
for /F "tokens=1-3" %G in ('tasklist^|find /I ".vshost.exe"') do @echo %G %H %I
如果输出符合您的条件,则替换@echo %G %H %I
为taskkill /PID %H /T
或类似内容。
注意:%
在批处理脚本中使用时,符号要加倍:使用%%G
代替%G
, %%H
使用 代替%H
等等。
答案2
taskkill /f /fi "imagename eq *.vshost.exe"