中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 13:36
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于TASKKILL的筛选器的问题 查看 1,013 回复 2
楼 主 关于TASKKILL的筛选器的问题 发表于 2009-10-07 19:14 ·  中国 广东 广州 荔湾区 电信
新手上路
积分 5
发帖 5
注册 2009-10-06 11:50
16年会员
UID 152673
性别 男
状态 离线
小弟刚刚学批处理,想写一条用来清除除CMD.EXE,ALG.EXE,SVCHOST.EXE,WINLOGON.EXE,SERVICES.EXE,LSASS.EXE
以外的所有进程的命令,但是这样写排除不了上述进程......
请问要怎么改?

taskkill /f /im explorer.exe /t /fi "imagename ne CMD.EXE" /fi "imagename ne ALG.EXE" /fi "imagename ne SVCHOST.EXE" /fi "imagename ne WINLOGON.EXE" /fi "imagename ne SERVICES.EXE" /fi "imagename ne LSASS.EXE" /IM *
2 发表于 2009-10-07 20:00 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
仅有Tasklist才可以使用连续的 /fi,Taskkill不可以
以下均在批处理中使用:

for /f "delims=," %%i in ('tasklist /nh /FO CSV /fi "imagename ne tasklist.EXE" /fi "imagename ne taskkill.EXE" /fi "imagename ne FIND.EXE" /fi "imagename ne CMD.EXE" /fi "imagename ne ALG.EXE" /fi "imagename ne SVCHOST.EXE" /fi "imagename ne WINLOGON.EXE" /fi "imagename ne SERVICES.EXE" /fi "imagename ne LSASS.EXE" ^| find /i ".exe"') do taskkill /f /im %%i>nul


说明:使用中,必须使用tasklist 将tasklist.EXE taskkill.EXE FIND.EXE CMD.EXE 排除。
find /i ".exe用以排除内核进程和空闲进程.

实际使用中,更推荐使用findstr /v 进行排除,比使用 /fi 简单

for /f "delims=," %%i in ('tasklist /nh /FO CSV ^| findstr /v /i "tasklist.EXE taskkill.EXE findstr.EXE CMD.EXE ALG.EXE SVCHOST.EXE WINLOGON.EXE SERVICES.EXE LSASS.EXE" ^| findstr /i "\.exe"') do taskkill /f /im %%i>nul


说明:使用中,必须使用findstr /v 将tasklist.EXE taskkill.EXE findstr.EXE CMD.EXE 排除。
findstr /i "\.exe用以排除内核进程和空闲进程.

[ Last edited by Hanyeguxing on 2009-10-7 at 21:23 ]
3 发表于 2009-10-07 22:00 ·  中国 广东 广州 荔湾区 电信
新手上路
积分 5
发帖 5
注册 2009-10-06 11:50
16年会员
UID 152673
性别 男
状态 离线
很感谢,我去看看用法
论坛跳转: