编写Windows .bat文件以杀死进程的任何方法?

时间:2008-08-29 02:09:56

标签: performance batch-file process

因此,每当我打开公司自有的开发机器时,我必须使用任务管理器或任何其他流程管理应用程序杀死10多个进程,以便从我的IDE中获得不错的性能。是的,这些是我公司在我的机器上安装的程序的过程,以确保安全性和合规性。我想要做的是有一个.bat文件或某种类型的脚本,我可以启动并杀死有问题的进程。

有人已经知道怎么做了吗?

9 个答案:

答案 0 :(得分:152)

您可以使用'taskkill'执行此操作。使用/ IM参数,您可以指定图像名称。例如:

  

taskkill / im somecorporateprocess.exe

你也可以这样做'强制'杀人:

  

taskkill / f / im somecorporateprocess.exe

每个要删除的进程只需添加1行,保存为.bat文件,然后放入启动目录。问题解决了!

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

答案 1 :(得分:104)

taskkill /f /im "devenv.exe"

这将使用exe名称“devenv.exe”强行杀死pid

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

答案 2 :(得分:6)

由于TASKKILL可能在Windows的某些Home / basic版本中不可用,所以有一些替代方案:

TSKILL processName

TSKILL PID

请注意,processName不应包含.exe后缀,且不得超过18个字符。

另一个选项是WMIC

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

wmic提供比taskkill更多的灵活性。使用wmic Path win32_process get,您可以看到可以过滤的可用文件。

答案 3 :(得分:5)

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

答案 4 :(得分:5)

从发现Sony Rootkit的Sysinternals家伙Mark Russinovich那里得到Autoruns ...我用过的最好的软件来清理自动启动的东西。

答案 5 :(得分:4)

下载PSKill。编写一个批处理文件,为每个要死的进程调用它,并为每个进程传递进程名称。

答案 6 :(得分:1)

使用Powershell!内置cmdlet用于管理进程。 Examples here(艰难的),here(内置)和here(更多)。

答案 7 :(得分:0)

请查看以下逻辑,了解条件。

如果我们只是调用taskkill /im applicationname.exe,它只会在此进程运行时终止。如果此进程未运行,则会引发错误。

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

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

if errorlevel 1 taskkill /f /im "applicationname.exe"

答案 8 :(得分:0)

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

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

for只需获取以下PID命令中列出的所有tasklist,并在每TASKKILL /PID

上执行PID
tasklist /FO Table /M "chrome*" /NH

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