任何方式来编写一个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理进程的cmdlet中。 这里的例子 (困难的方式), 在这里 (内置)和这里 (更多)。
请在下面的条件下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"