中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 如何判断某进程是否启动? 上一主题 | 下一主题
qy33
新手上路





积分 10
发帖 3
注册 2006-4-16
状态 离线
『楼 主』:  如何判断某进程是否启动?

如题,如何判断某进程已经启动啊,
如果启动了,就终止他。
这该怎么来写批处理

2006-4-16 20:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 2 楼』:  

方案一:
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)。

2006-4-17 00:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 3 楼』:  

方案二应该可以再简化一下吧:

tasklist | find "cmd.exe" && taskkill /im cmd.exe



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2006-4-17 01:23
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 4 楼』:  

糟了,抬杠的来了。。
不错,用/im参数的确比较方便简化一些。
不过看microsoft发展的趋势以及培养良好的习惯来说,一般我喜欢用findstr而不用find,用/fi而不用/im。
用microsoft的话来说应该是规范化吧。
另外,/fi还支持通配符。
糟了,抬杠的是站长,快闪。。

[ Last edited by 3742668 on 2006-4-17 at 01:43 ]

2006-4-17 01:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 5 楼』:  

呵呵,当然不会是“抬扛”了,论坛本来就是互相学习、讨论和交流的地方。

findstr之类的确实比较正规(即上面所说的规范化),而find之类相对确是简化作法,是标准的DOS作风。可以说它们各有特色吧,适合于不同习惯或要求的用户。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2006-4-17 01:50
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
qy33
新手上路





积分 10
发帖 3
注册 2006-4-16
状态 离线
『第 6 楼』:  

谢谢楼上的两位老大的解答。
XP下可以用。

但Win 2000环境下怎么办?
taskkill没用啊。

2006-4-18 01:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
JonePeng
金牌会员

D◎$ Fαп


积分 4562
发帖 1883
注册 2004-1-19
来自 广东广州
状态 离线
『第 7 楼』:  



  Quote:
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”命令,来强行关闭这个进程。



----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
  
2006-4-20 23:56
查看资料  发送邮件  发短消息 网志  OICQ (373343541)  编辑帖子  回复  引用回复
qy33
新手上路





积分 10
发帖 3
注册 2006-4-16
状态 离线
『第 8 楼』:  

那怎么查看进程的PID是多少啊

2006-5-1 17:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: