标题: [系统相关] 求杀指定进程以外所有进程的代码 [打印本页]
作者: dwz 时间: 2008-10-31 05:25 标题: 求杀指定进程以外所有进程的代码
我的意思是假设我的电脑每次启动有1.exe 2.exe.....20.exe这20个进程运行。
现在我要结束除了1-5以外的所有进程,我的意思是另外的15个进程我不一定知道名字,光是通过让批处理判断只要不是我要保留的那5个进程都全部结束掉,请问这个批处理该怎么写
作者: batman 时间: 2008-10-31 08:37
思路先用tasklist获得所有在运行的进程名,然后用for语句进行判断是否是要保留的进程:- @echo off
- echo 请输入你要保留的进程名,中间用空格格开
- set /p code=在此输入:
- for /f "delims=" %%a in ('tasklist^|findstr "exe"') do (
- for %%i in (%code% tasklist) do if /i "%%~na" neq "%%~ni" set "flag=a"
- if defined flag taskkill /im "%%a" /f>nul&set "flag="
- )
复制代码
作者: terse 时间: 2008-10-31 17:09
觉得里面的FOR 可以在前面先处理完 再FOR
也就是先赋值 已知进程
[ 本帖最后由 terse 于 2008-10-31 17:10 编辑 ]
作者: batman 时间: 2008-10-31 17:19
terse兄所言即是,修改如下:- @echo off
- echo 请输入你要保留的进程名(不含后缀),中间用空格格开
- set /p code=在此输入:
- for %%i in (%code% tasklist) do set "_%%i=a"
- for /f "delims=" %%i in ('tasklist^|findstr "exe"') do (
- if not defined _%%i taskkill /im "%%i" /f>nul
- )
复制代码
作者: dwz 时间: 2008-11-1 02:57
谢谢两位大哥!
请问可不可以省去输入保留进程这一部啊?
假设我知道这5个进程的名字,我每次都只保留这5个,所以只要运行这个批处理就可以了。
作者: zqz0012005 时间: 2008-11-1 03:05
我差点要怀疑这个帖子的作者是不是楼主马甲:
http://bbs.verybat.org/thread-13764-1-1.html
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |