中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 在批处理中如何关闭由批处理打开的程序?
« [1] [2] »
作者:
标题: 在批处理中如何关闭由批处理打开的程序? 上一主题 | 下一主题
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 16 楼』:  

wmic 也是根据进程名结束的

2006-11-16 03:49
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





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



  Quote:
3742668 版主的方法我试着换了其它程序,把记事本换成了 curl (上传文件),换成了播放器(播放视频)。但我都没试成功。(我不懂 WMIC ,可能是我不会用,用错了。不知应该如何使用。)


@echo off
    set /p str=输入程序名(空格加引号):
    for /f "tokens=2 delims==;" %%i in ('wmic process call create %str% ^| findstr /i "ProcessId"') do @set /a x=%%i
    echo 由本脚本启动的%str%进程的pid为:%x%
pause


  Quote:
wmic 也是根据进程名结束的

不仅wmic可以通过多种属性识别进程,单是taskkill就可以通过多种属性结束指定进程,就连ntsd在XP中都可以分别通过pid和imagename来结束指定进程。

ntsd -c q -p %pid%
ntsd -c -q -pn %imagename%
taskkill /fi "pid eq/ne/gt/lt/ge/le %pid%"
taskkill /im %imagename%
taskkill /pid %pid%
wmic process where "processid='%pid%'" call Terminate
wmic process where "name='%imagename%'" call Terminate
wmic path  win32_process.name="%imagename%" call Terminate
wmic path win32_process.processid="%pid%" call Terminate
...


   此帖被 +11 点积分      点击查看详情   
评分人:【 lxmxn 分数: +3  时间:2006-11-16 16:54
评分人:【 voiL 分数: +3  时间:2006-11-18 12:00
评分人:【 NaturalJ0 分数: +5  时间:2006-11-20 21:20


2006-11-16 14:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
voiL
中级用户





积分 384
发帖 189
注册 2005-10-19
状态 离线
『第 18 楼』:  



  Quote:
Originally posted by 3742668 at 2006-11-16 14:02:

[code]@echo off
    set /p str=输入程序名(空格加引号):
    for /f "tokens=2 delims==;" %%i in ('wmic process call create %str% ^| findstr /i "ProcessId"') do @set  ...

好家伙,之前已经领教过3742668版主的wmic了,想不到这一次又是wmic,看来得好好学学wmic才行.

2006-11-18 12:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pengfei
银牌会员




积分 1218
发帖 485
注册 2006-7-21
来自 湖南.娄底
状态 离线
『第 19 楼』:  

3742668版主的代码是否可以修改成打开文件, 如果只是打开程序有点美中不足.



业精于勤而荒于嬉,形成于思而毁于随。
2006-11-18 12:37
查看资料  发送邮件  发短消息 网志  OICQ (573381312)  编辑帖子  回复  引用回复
3742668
荣誉版主





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



  Quote:
3742668版主的代码是否可以修改成打开文件, 如果只是打开程序有点美中不足.

当然可以,只要把create后面的命令用“cmd /c start "的格式来替换就行了,然后在结束进程的时候不能用processid=%pid%来结束,而是用上面提到过的parentprocessid来解决,因为cmd /c运行后会自动退出,而当时获得的pid为cmd的pid,是被启动的进程的父进程。

2006-11-20 13:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 21 楼』:  

发个图

附件 1: cmd.JPG (2006-11-20 21:37, 41.69 K, 下载附件所需积分 1 点 ,下载次数: 19)


2006-11-20 21:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vlq5299
初级用户





积分 136
发帖 59
注册 2006-6-2
状态 离线
『第 22 楼』:  

有点麻烦,有没有简单的?

2006-12-5 03:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: