中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-24 03:28
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用批处理结束两个名字相同的进程中的一个 查看 1,581 回复 10
楼 主 如何用批处理结束两个名字相同的进程中的一个 发表于 2007-07-02 17:56 ·  中国 北京 鹏博士BGP
初级用户
积分 126
发帖 47
注册 2007-07-02 17:00
18年会员
UID 92952
性别 男
状态 离线
我们这里的系统为了限制下载,用了个关键字屏蔽的Explorer.exe的软件
但是如果用 taskkill /f /im Explorer.exe就会连桌面进程 explorer.exe一起结束掉
想请教一下有没有什么办法只结束掉关键字进程Explorer.exe而不结束掉桌面进程explorer.exe?
我不想每次都先用tasklist找Explorer.exe的PID值
2 发表于 2007-07-02 22:21 ·  中国 山东 聊城 电信
系统支持
★★★
积分 1,010
发帖 434
注册 2007-02-08 00:00
19年会员
UID 78999
性别 男
状态 离线
用pid
3 发表于 2007-07-02 22:53 ·  中国 广东 佛山 电信
高级用户
★★
我思故我在
积分 512
发帖 228
注册 2007-01-21 10:31
19年会员
UID 77225
性别 男
状态 离线
PID是无法直接分辨两个EXPLORER的,它只是进程运行时系统随机为进程分配

的,并不代表专门的进程,所以单纯只看PID,你不会知道到底应该终止哪个

EXPLORER,但我们可以通过WMIC分析两个进程的路径判断,只要是非

C:\WINDOWS下的EXPLORER就终止该进程PID

[ Last edited by qinbuer on 2007-7-3 at 12:04 PM ]
我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
4 发表于 2007-07-03 08:11 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
先taskkill /f /im explorer.exe,再start %systemroot%\explorer.exe。

或者如楼上兄弟说的,查看程序的路径来判断。
5 发表于 2007-07-03 23:58 ·  中国 北京 鹏博士BGP
初级用户
积分 126
发帖 47
注册 2007-07-02 17:00
18年会员
UID 92952
性别 男
状态 离线
我是在网吧上网的。
如果用taskkill /f /im Explorer.exe 那样就会连系统的桌面进程explorer.exe也一起结束掉了,再加载explorer会造成系统托盘的计费系统的图标看不到而无法结帐。
当然我也可能先用tasklist查出Explorer.exe进程的PID值(这里系统进程和关键字屏蔽进程的名字差别只在与系统进程全小写的,,关键字屏蔽的进程第一个字母是大写的,所以可以很清楚判断哪个才是所需要结束的),然后用taskkill /f /pid +PID值来结束
可是因为系统做了很多的限制,每次都要这样查我觉得很烦。
我想请问一下的是有没有可能先用tasklist列出进程信息之后,用find的功能查找出关键字进程后的进程PID值,然后用taskkill 结束进程时调用查找出的值呢?
6 发表于 2008-01-22 19:18 ·  中国 广东 深圳 电信
初级用户
★★
积分 135
发帖 64
注册 2006-12-20 04:35
19年会员
UID 74003
性别 男
状态 离线
我有一个更简单的问题,如果我发现有两个 explorer.exe 的话

就执行一个命令说,这个机子中毒了,应该怎么写呀???

LX大哥请你帮帮我!!
7 发表于 2008-01-22 19:19 ·  中国 广东 深圳 电信
初级用户
★★
积分 135
发帖 64
注册 2006-12-20 04:35
19年会员
UID 74003
性别 男
状态 离线
我想过用PID是否相等来判断这个机子是否有两个explorer.exe
假如有一个的话,那么肯定是相等的,如果有两个的话,肯定是不相等的。
但是判断相等要怎么做呀?
8 发表于 2008-01-22 19:31 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
tasklist /FI "IMAGENAME eq explorer.exe"
系统是不区分大小写的。。。
所以会得到2个。。然后你findstr下(这个区别大小写)

然后自己再做你想做的。。。对了上面的可以得到PID哦
9 发表于 2008-01-22 19:55 ·  中国 江苏 常州 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
这样试试

@echo off
for /f "tokens=1,2" %%i in ('tasklist /nh /FO TABLE') do (
if "%%i" == "Explorer.exe" taskkill /FI "pid eq %%j"
)
pause


taskkill /FI "pid eq %%j" 可能要加上 /f

[ Last edited by terse on 2008-1-22 at 08:02 PM ]
简单!简单!再简单!
10 发表于 2008-01-22 22:26 ·  中国 广东 深圳 电信
初级用户
★★
积分 135
发帖 64
注册 2006-12-20 04:35
19年会员
UID 74003
性别 男
状态 离线
大家有没有看到我的问题呢??

我的问题是,如果我发现有两个 explorer.exe 的话,就向服务器发一个消息

说,这台机子可能中毒了。要怎么做呢???我P是个大菜鸟呀。什么不会!!
11 发表于 2008-01-24 17:04 ·  中国 广西 南宁 电信
新手上路
积分 2
发帖 1
注册 2008-01-24 16:13
18年会员
UID 109432
性别 男
状态 离线
谢谢9楼的脚本,让我隐藏指定程序进程的脚本有进展
论坛跳转: