中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-18 03:28
47,814 主题排行 / 349,907 发帖 / 今日 4 篇 / 48,259 会员排行
DOS疑难解答 & 问题讨论 (解答室) » 如何判断某进程是否启动?
可打印版本  1,085 / 7
第1楼 qy33 发表于 2006-04-16 20:10
新手上路 发帖 3 积分 10
如何判断某进程是否启动?
如题,如何判断某进程已经启动啊,
如果启动了,就终止他。
这该怎么来写批处理
第2楼 3742668 发表于 2006-04-17 00:54
荣誉版主 发帖 718 积分 2,013
方案一:
wmic process where name="cmd.exe" call terminate
方案二:
tasklist | find "cmd.exe" && taskkill /fi "imagename eq cmd.exe"
运行环境需XP PRO。
XP中关于进程的命令还是蛮多的。
查看命令可以用tasklist,wmic process。
终止进程可以用wmic中的call terminate,也可以用taskkill还可以用tskill以及NTSD的-p(PID)或-pn(name)。
第3楼 Wengier 发表于 2006-04-17 01:23
系统支持 发帖 10,521 积分 27,736
方案二应该可以再简化一下吧:

tasklist | find "cmd.exe" && taskkill /im cmd.exe
第4楼 3742668 发表于 2006-04-17 01:39
荣誉版主 发帖 718 积分 2,013
糟了,抬杠的来了。。
不错,用/im参数的确比较方便简化一些。
不过看microsoft发展的趋势以及培养良好的习惯来说,一般我喜欢用findstr而不用find,用/fi而不用/im。
用microsoft的话来说应该是规范化吧。
另外,/fi还支持通配符。
糟了,抬杠的是站长,快闪。。

[ Last edited by 3742668 on 2006-4-17 at 01:43 ]
第5楼 Wengier 发表于 2006-04-17 01:50
系统支持 发帖 10,521 积分 27,736
呵呵,当然不会是“抬扛”了,论坛本来就是互相学习、讨论和交流的地方。

findstr之类的确实比较正规(即上面所说的规范化),而find之类相对确是简化作法,是标准的DOS作风。可以说它们各有特色吧,适合于不同习惯或要求的用户。
第6楼 qy33 发表于 2006-04-18 01:18
新手上路 发帖 3 积分 10
谢谢楼上的两位老大的解答。
XP下可以用。

但Win 2000环境下怎么办?
taskkill没用啊。
第7楼 JonePeng 发表于 2006-04-20 23:56
金牌会员 发帖 1,883 积分 4,562 来自 广东广州
Originally posted by qy33 at 2006-4-18 01:18:
但Win 2000环境下怎么办?
taskkill没用啊。

Win2000下没有TaskKill,但可以用“ntsd -c q -p PID”命令来代替,例如,某个进程的PID为“444”,那么可以执行“ntsd -c q -p 444”命令,来强行关闭这个进程。
第8楼 qy33 发表于 2006-05-01 17:05
新手上路 发帖 3 积分 10
那怎么查看进程的PID是多少啊
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023