标题: [其他] [已解決]批处理start程序后如何获取这个PID并taskkill 这个PID [打印本页]
作者: qaz123654 时间: 2009-8-21 11:49 标题: [已解決]批处理start程序后如何获取这个PID并taskkill 这个PID
例如:start iexplore 后获取这个IE的PID值
用 tasklist /fi "IMAGENAME eq iexplore.exe" 可以判断PID
但是经常会开多个IE ,如何判断那个PID是start iexplore 的
然后用 taskkill /f /pid 结束这个进程
taskkill /f /im iexplore.exe是不能用的会关闭掉所有IE进程。
自己没思路,拜托各位了,谢谢~~
[ 本帖最后由 qaz123654 于 2009-8-21 13:01 编辑 ]
作者: defanive 时间: 2009-8-21 12:19
通过窗口标题判断,但是也会有重复的时候。。。
最好的办法就是用vbs,可以直接返回pid。。。
作者: Lumiere 时间: 2009-8-21 12:27
- @echo off
- for /f "tokens=2" %%a in ('tasklist^|findstr /i "iexplore.exe"') do echo %%a>>keep.txt
- start "" iexplore.exe
- for /f "tokens=2" %%a in ('tasklist^|findstr /i "iexplore.exe"') do echo %%a>>com.txt
- for /f %%a in (com.txt) do findstr %%a keep.txt||taskkill /pid:%%a
- pause
复制代码
[ 本帖最后由 Lumiere 于 2009-8-21 12:40 编辑 ]
作者: zqz0012005 时间: 2009-8-21 12:31
start 没有这个功能,只在启动命令行程序(如cmd、ping、bat)时可以指定窗口标题。
可以用wmic运行程序再用for截取pid- @echo off
- for /f "tokens=1,2 delims==; " %%a in ('wmic process call create '"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE" "http://www.bathome.net"'^|find /i "ProcessId"') do set %%a=%%b
- echo %ProcessId%
- pause
复制代码
作者: qaz123654 时间: 2009-8-21 12:38 标题: 回复 2楼 的帖子
用VBS?
能不能给个代码看下,谢谢
作者: zqz0012005 时间: 2009-8-21 12:42 标题: 回复 5楼 的帖子
- set ws=CreateObject("WScript.Shell")
- set oexec=ws.exec("C:\Program Files\Internet Explorer\IEXPLORE.EXE")
- wsh.echo oexec.processid
复制代码
作者: cjiabing 时间: 2009-8-21 12:46
批处理并非万能的。
隔时间扫描IE进程,记录IE的PID,当有新的PID时把它挑选出来。
作者: cjiabing 时间: 2009-8-21 12:52
- @echo off
- for /f "skip=3 tokens=2" %%a in ('tasklist /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "imagename eq iexplore.exe"') do echo %
- %a >>tasklist0.txt
- start "" iexplore.exe
- for /f "skip=3 tokens=2" %%a in ('tasklist /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "imagename eq iexplore.exe"') do echo %
- %a >>tasklist1.txt
- for /f "skip=3 delims=*" %%a in ('fc tasklist0.txt tasklist1.txt') do (ping n 5 127.0.1>nul & taskkill /pid %%a)
- del tasklist0.txt,tasklist1.txt
- pause
复制代码
[ 本帖最后由 cjiabing 于 2009-8-21 13:34 编辑 ]
作者: qaz123654 时间: 2009-8-21 12:58
还是斑竹厉害啊,
谢谢各位了
作者: Seter 时间: 2009-9-22 20:35
原帖由 cjiabing 于 2009-8-21 12:46 发表
批处理并非万能的。
隔时间扫描IE进程,记录IE的PID,当有新的PID时把它挑选出来。
居然真这么做了...强悍的...这效率是不是低了点....
作者: bluewing009 时间: 2010-11-2 08:44
启动前获取一次,启动后立即获取一次,判断不同即可。除非你的系统又同时启动了一个………………
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |