133

每次我打开公司拥有的开发机器时,我都必须使用任务管理器或任何其他进程管理应用程序杀死 10 多个进程,才能从我的 IDE 中获得不错的性能。是的,这些是我的公司为了安全和合规而安装在我的机器上的程序的流程。我想做的是有一个 .bat 文件或某种脚本,我可以用它来杀死有问题的进程。

有人知道怎么做这个吗?

4

9 回答 9

199

你可以用' taskkill '来做到这一点。使用 /IM 参数,您可以指定图像名称。

例子:

taskkill /im somecorporateprocess.exe

你也可以这样做来“强制”杀死:

例子:

taskkill /f /im somecorporateprocess.exe

只需为要杀死的每个进程添加一行,将其保存为 .bat 文件,然后添加到您的启动目录中。问题解决了!

如果这是一个遗留系统,PsKill也会这样做。

于 2008-08-29T02:14:00.100 回答
109
taskkill /f /im "devenv.exe"

这将强行杀死具有 exe 名称“devenv.exe”的 pid

相当于 nix'y kill 命令上的 -9

于 2008-08-29T02:13:12.503 回答
10

由于 TASKKILL 可能在某些家庭/基本版 Windows 上不可用,因此这里有一些替代方案:

TSKILL processName

或者

TSKILL PID

请记住,processName不应该有.exe后缀并且限制为 18 个字符。

另一种选择是WMIC

wmic Path win32_process Where "Caption Like 'MyProcess%.exe'" Call Terminate

wmic 通过其类似 SQL 的匹配器提供比 taskkill 更大的灵活性。通过wmic Path win32_process get您可以查看可以过滤的可用文件(并且%可以用作通配符)。

于 2015-02-02T08:22:40.360 回答
5

我假设作为开发人员,您对您的机器具有一定程度的管理控制权。如果是这样,请从命令行运行 msconfig.exe。您甚至可以从启动中删除许多进程,从而无需使用上述解决方案杀死它们。

于 2008-08-29T03:18:58.897 回答
5

从发现 Sony Rootkit 的 Sysinternals 人 Mark Russinovich 那里获得Autoruns ……我用过的最好的软件,用于清理自动启动的东西。

于 2008-08-29T03:45:26.057 回答
4

下载PSKill。编写一个批处理文件,为您想要终止的每个进程调用它,并传入每个进程的名称。

于 2008-08-29T02:12:01.227 回答
1

使用 Powershell!用于管理进程的内置 cmdlet。 示例here(hard way),here(内置)和here(更多)。

于 2008-08-29T02:33:07.743 回答
1

请在以下条件下找到适用的逻辑。

如果我们简单地调用taskkill /im applicationname.exe,它只会在该进程正在运行时才会终止。如果这个进程没有运行,它会抛出一个错误。

为了在takskill调用之前进行检查,可以进行检查以确保taskkill只有在进程正在运行时才会执行execute,这样它就不会抛出错误。

tasklist /fi "imagename eq applicationname.exe" |find ":" > nul

if errorlevel 1 taskkill /f /im "applicationname.exe"
于 2016-10-26T12:32:18.447 回答
1

在这里,我编写了一个示例命令,您可以将其粘贴到cmd命令行提示符中,并且是为chrome.exe.

FOR /F "tokens=2 delims= " %P IN ('tasklist /FO Table /M "chrome*" /NH') DO (TASKKILL /PID %P)

for 只需获取以下命令PID中列出的所有 s并在每个tasklistTASKKILL /PIDPID

tasklist /FO Table /M "chrome*" /NH

如果您在批处理文件中使用 for 只需使用 %%P 而不是 %P

于 2018-02-12T21:58:00.343 回答