中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何用批处理获取指定程序进程的PID
作者:
标题: [求助]如何用批处理获取指定程序进程的PID 上一主题 | 下一主题
ruisoft
初级用户





积分 93
发帖 57
注册 2007-3-12
状态 离线
『楼 主』:  [求助]如何用批处理获取指定程序进程的PID

(代码需要在Win2000下运行!)

如何用批处理获取指定程序进程的PID

[ Last edited by ruisoft on 2008-12-3 at 17:19 ]

2008-12-1 21:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 2 楼』:  

http://www.cn-dos.net/forum/view ... mp;page=1#pid314117

2008-12-1 21:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ruisoft
初级用户





积分 93
发帖 57
注册 2007-3-12
状态 离线
『第 3 楼』:  

tasklist 只能在WINXP以上系统使用!

2008-12-1 23:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 4 楼』:  

只能在XP下使用?为何不把你的系统环境一次性在顶楼说清楚。。。^_^



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-12-1 23:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ruisoft
初级用户





积分 93
发帖 57
注册 2007-3-12
状态 离线
『第 5 楼』:  

sorry!sorry!
心急,把应用环境漏了。^_^

sorry!sorry!

2008-12-1 23:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 6 楼』:  

如果WMIC 和tsaklist命令不可以用,可以尝试用vbs、
Dim ins,objProcess,OneProcess
ins=InputBox("指定进程名")

set objProcess=GetObject("winmgmts:\\.\root\cimv2")
set OneProcess=objProcess.execquery("select * from win32_process")
for each i in OneProcess
if lcase(i.name)=lcase(ins) then
   msgbox i.processID
end if
next
[ Last edited by huahua0919 on 2008-12-2 at 06:18 ]

   此帖被 +4 点积分     点击查看详情   
评分人:【 lxmxn 分数: +4  时间:2008-12-2 03:14


2008-12-2 00:13
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 7 楼』:  To huahua0919:

建议这样:if lcase(i.name)=lcase(ins) then

   此帖被 +5 点积分      点击查看详情   
评分人:【 huahua0919 分数: +5  时间:2008-12-2 06:15


2008-12-2 03:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ruisoft
初级用户





积分 93
发帖 57
注册 2007-3-12
状态 离线
『第 8 楼』:  

版主能否讲细一些,好吗?

建议这样:if lcase(i.name)=lcase(ins) then

2008-12-2 09:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ruisoft
初级用户





积分 93
发帖 57
注册 2007-3-12
状态 离线
『第 9 楼』:  

对 VBS 不深,如何在BAT文件中调用下面的值?

msgbox i.processID

2008-12-2 09:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by ruisoft at 2008-12-2 09:15 AM:
对 VBS 不深,如何在BAT文件中调用下面的值?

msgbox i.processID

改为
wsh.echo i.processID

---------------
在批处理中:(假设此vbs名为p.vbs)

for /f %%a in ('cscript //nologo p.vbs') do echo %%a

2008-12-2 11:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
dos9527
中级用户




积分 252
发帖 56
注册 2003-12-29
状态 离线
『第 11 楼』:  

不过貌似进程每一次的PID值都不一样哦

2008-12-2 12:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ruisoft
初级用户





积分 93
发帖 57
注册 2007-3-12
状态 离线
『第 12 楼』:  

进程PID值会随着程序的每一次启动而不同。

因此,在重启程序之前,先把运行的程序进程终止。

这样就可以保证机器中有只有一个程序对应的进程运行。

2008-12-2 16:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tempuser
高级用户





积分 547
发帖 261
注册 2006-4-15
状态 离线
『第 13 楼』:  

目前系统都支持WMIC吧,试试这个,我这个也是向这里的朋友请教尝试得来的:

set /p   fteding=    请输入要查找的进程   
wmic  process  get   caption,processid >c:\temp\jincheng1.txt
type c:\temp\jincheng1.txt | findstr /i "^%fteding%"

2008-12-2 16:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ruisoft
初级用户





积分 93
发帖 57
注册 2007-3-12
状态 离线
『第 14 楼』:  



  Quote:
Originally posted by tempuser at 2008-12-2 04:59 PM:
目前系统都支持WMIC吧,试试这个,我这个也是向这里的朋友请教尝试得来的:

set /p   fteding=    请输入要查找的进程   
wmic  process  get   caption,processid > ...

哦!高手,能讲详细些吗?

WMIC ??? !!!

2008-12-2 17:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 15 楼』:  

你的代码需要在Win2000下运行?如果是的话,建议在顶楼描述清楚。



2008-12-2 20:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: