|
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
状态 离线
|
|
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
|
|
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 |
|