结束普通方法无法结束的进程
Posted mobilecard
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结束普通方法无法结束的进程相关的知识,希望对你有一定的参考价值。
使用ntsd程序 (如果安装过VS,在VS的安装目录下,比如“C:Program Files (x86)Debugging Tools for Windows (x86) tsd.exe”,也可以在这里下载)
ntsd -c q -p PID
ntsd -c q -pn PName
两种方法
一种是使用进程的ID号,将PID换成对应进程ID号即可
一种是使用进程的名称,将PName换成对应的exe名字即可,比如notepad.exe
为了方便,写了个批处理,将该批处理和ntsd放在一起,使用时执行批处理,选择对应的方式,并输入参数即可。
@ECHO OFF TITLE 结束使用普通方法无法结束的进程 COLOR 0A MODE con: COLS=62 LINES=22 :MENU set tm1=%time:~0,2% set tm2=%time:~3,2% set tm3=%time:~6,2% ECHO. %date% %tm1%点%tm2%分%tm3%秒 ECHO. ======================================== ECHO. 请选择要进行的操作,然后按回车 ECHO. ──────────────────── ECHO. 1 根据进程号PID结束进程 ECHO. 2 根据进程名称结束进程 ECHO. 0 退出 ECHO. ECHO.请输入选择项目的序号: set /p choose= if %choose%==1 goto killusingpid if %choose%==2 goto killusingname if %choose%==0 goto END ECHO. 输入错误,请输入正确的项目序号: goto menu :killusingpid ECHO. 请输入进程号PID,然后按回车 set /p proid= set /a i=0 :kpid ntsd -c q -p %proid% if %i% GEQ 10 ( ( echo 结束进程%proid%失败 ) & goto MENU ) pause set /a i=%i%+1 echo 结束进程%proid%第%i%次 tasklist | findstr /i %proid% && ( goto kpid ) echo 结束进程ID为%proid%的程序成功或进程ID:%proid%不存在 GOTO MENU :killusingname ECHO. 请输入进程的名称(比如notepad.exe),然后按回车 set /p proname= set /a i=0 :kpname ntsd -c q -pn %proname% if %i% GEQ 10 ( ( echo 结束程序%proname%失败 ) & goto Menu ) set /a i=%i%+1 echo 结束程序%proname%第%i%次 tasklist | findstr /i %proname% && goto kpname echo 结束程序%proname%成功或程序:%proname%未启动 GOTO MENU :END exit
参考:
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/cdb-command-line-options
以上是关于结束普通方法无法结束的进程的主要内容,如果未能解决你的问题,请参考以下文章