关于性能:有什么方法可以编写Windows .bat文件来杀死进程?

关于性能:有什么方法可以编写Windows .bat文件来杀死进程?

Any way to write a Windows .bat file to kill processes?

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

有人知道怎么做这个吗?


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

taskkill /im somecorporateprocess.exe

您还可以执行此操作以"强制"杀死:

taskkill /f /im somecorporateprocess.exe

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

如果这是旧系统,PsKill将执行相同的操作。


1
taskkill /f /im"devenv.exe"

这将强制杀死exe名称为" devenv.exe"的pid

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


由于某些Windows的Home / basic版本上可能无法使用TASKKILL,因此有一些替代方法:

1
TSKILL processName

要么

1
TSKILL PID

请记住,processName不应具有.exe后缀,并且最多可以包含18个字符。

另一个选项是WMIC

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

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


从发现了索尼Rootkit的Sysinternals家伙Mark Russinovich获得自动运行...我曾经用来清理可自动启动的东西的最佳软件。


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


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


使用Powershell!内置cmdlet用于管理进程。这里的示例(困难的方式),这里的示例(内置)和这里的示例(更多)。


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

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

for仅接受以下tasklist命令中列出的所有PID,并在每个PID上执行TASKKILL /PID

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

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


请找到以下符合条件的逻辑。

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

为了在调用takskill之前进行检查,可以进行检查以确保仅在进程正在运行时才执行execute taskkill,从而不会引发错误。

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

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

推荐阅读