怎么用BAT文件找到进程PID并结束它?

如题。。。... 如题。。。 展开
 我来答
砂石王老五
推荐于2016-04-11 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3915
采纳率:78%
帮助的人:526万
展开全部

结束进程需要用到命令“taskkill”,命令行如下:taskkill /PID <进程PID>,如下图所示:

需要注意的是,进程的PID并不是一成不变的,计算机一重新启动,进程的PID就有可能改变,所以在批处理中使用TASKKILL命令以PID为关键字结束进程并不是可靠的方法,应该与TASKLIST命令相配合,查找进程名字来结束进程,举例如下:


ECHO.

ECHO     ==检查〈完整进程名〉进程是否存在,如果存在则强制结束。

tasklist|findstr "〈完整进程名〉"

if %errorlevel%==0 (taskkill /F /IM 〈完整进程名〉) else (ECHO 该进程不存在或当前不在运行状态)

天下有敌的店铺
推荐于2018-03-12 · TA获得超过504个赞
知道小有建树答主
回答量:223
采纳率:0%
帮助的人:284万
展开全部
得到PID并结束的话
是不是你要先看到PID然后选择要结束哪一个?
如果是这个意思
那么请试下这个批处理:

@echo off

echo for each ps in GetObject("winmgmts:\\.\root\cimv2:win32_process").instances_>___L_.vbs
echo WScript.Echo f(ps.handle,5)^&f(ps.name,15)^&ps.executablepath:Next>>___L_.vbs
echo Function f(str,n):f=str:for i=1 to n-len(str):f=f^&" ":Next:End Function>>___L_.vbs

cscript //nologo ___L_.vbs | find /V "cscript.exe" | find /V "find.exe" >C:\_proc_list.txt
del ___L_.vbs
type C:\_proc_list.txt

echo.
echo Please enter the PID of the process to be terminated , "0" to quit ...
set /p cmd=
if "%cmd%"==0 del C:\_proc_list.txt && goto :EOF
call :Tmnt %cmd%
del C:\_proc_list.txt
goto :EOF

:Tmnt
:start
if %1.==. goto :EOF
type C:\_proc_list.txt | find "%1" >nul && start /B ntsd -c q -p %1
shift
goto start
goto :EOF

使用时程序先列举出所有的程序PID,名字和可执行路径
然后你可以输入PID来结束指定的进程
如果你想结束多个进程
那么以空格分隔你的多个PID
举例来说
结束123,456和789三个进程时
你可以输入
123 456 789
然后这三个进程被强制结束
试下看看吧
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rushchao
2006-09-18 · TA获得超过478个赞
知道小有建树答主
回答量:439
采纳率:0%
帮助的人:597万
展开全部
这个估计无法做到
折中的办法是先在任务管理器里边找到这个进程的im名称(镜象名),找pid没用,因为pid不是固定的
然后用

taskkill /im qq.exe

这样就可以干掉qq了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式