任何方式来编写一个Windows .bat文件来杀死进程?

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

任何人都已经知道如何做到这一点?

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

taskkill / im somecorporateprocess.exe

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

taskkill / f / im somecorporateprocess.exe

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

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

 taskkill /f /im "devenv.exe" 

这将强行杀死exe文件名为“devenv.exe”的pid

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

我假设你是开发者,你对你的机器有一定的pipe理控制权。 如果是这样,从命令行运行msconfig.exe。 您甚至可以从启动中删除很多进程,从而消除了使用上述解决scheme来杀死它们的需要。

从马克Russinovich,Sysinternals人发现索尼Rootkit Autoruns …我用过的最好的软件清理自动开始的东西。

下载PSKill 。 写一个batch file,为每一个你想死的进程调用它,传递每个进程的名字。

由于TASKKILL可能在一些家庭/基本版本的Windows上不可用,

 TSKILL processName 

要么

 TSKILL PID 

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

另一个select是WMIC

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

wmic提供比taskkill更多的灵活性。使用wmic Path win32_process get可以看到可以筛选的可用文件。

使用Powershell! 内置在用于pipe理进程的cm​​dlet中。 这里的例子 (困难的方式), 在这里 (内置)和这里 (更多)。

请在下面的条件下find它在哪里工作的逻辑。

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

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

 tasklist /fi "imagename eq applicationname.exe" |find ":" > nul if errorlevel 1 taskkill /f /im "applicationname.exe"