Board logo

标题: 如何终止系统进程 [打印本页]

作者: zdh     时间: 2006-11-6 22:38    标题: 如何终止系统进程
偶是新到菜鸟,想问两个问题:
1、使用BAT如何终止系统进程,能够在不知道进程名字时(例如只知道进程含有Q字母),可以批量处理吗?
2、偶写一个BAT,调用了某个EXE,但是如果不关闭这个EXE,BAT的黑框就会一直都有。可以调用EXE的同时关闭BAT窗口吗?
谢谢各位大虾!

作者: namejm     时间: 2006-11-7 01:47
  你这个帖子其实问了不相干的两个问题,建议拆分为两个帖子来发问,一来有利于日后的检索,二来方便版面管理,第三嘛,还可以赚点积分,呵呵。

  1、你说你不知道进程的名字,按照一般的理解,你连自己想终止哪个进程都不清楚,那bat就更不可能知道你要干什么了。估计你是想终止某个程序,但是不知道这个程序对应着什么进程名是吧?

  2、等你拆分完毕之后,再在新帖中回答。

作者: zdh     时间: 2006-11-7 03:05
遵命!马上分贴!

作者: zdh     时间: 2006-11-7 03:10
Originally posted by namejm at 2006-11-6 01:47 PM:
  你这个帖子其实问了不相干的两个问题,建议拆分为两个帖子来发问,一来有利于日后的检索,二来方便版面管理,第三嘛,还可以赚点积分,呵 ...

我觉得你有点误解,我是说知道进程名包含某些共同的字母(如含有Q),能否批量关闭这些进程?

作者: youxi01     时间: 2006-11-7 05:14
对于XP系统,可以简单采用以下办法:
@for /f %%i in ('tasklist /NH ^|find /I "NOTE"') do @taskkill /IM %%i /T
说明:NOTE是你要结束的进程包含的文字。对于2000系统,请用WMI

作者: qujymr     时间: 2006-12-1 08:30    标题: 看看这个
问:怎么才能关掉一个用任务管理器关不了的进程?

答1:
杀进程很容易,随便找个工具都行。比如IceSword。关键是找到这个进程的启动方式,不然下次重启它又出来了。顺便教大家一招狠的。其实用Windows自带的工具就能杀大部分进程:

  c:\>ntsd -c q -p PID

  只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。ntsd从2000开始就是系统自带的用户态调试工具。被调试器附着(attach)的进程会随调试器一起退出,所以可以用来在命令行下终止进程。使用ntsd自动就获得了debug权限,从而能杀掉大部分的进程。ntsd会新开一个调试窗口,本来在纯命令行下无法控制,但如果只是简单的命令,比如退出(q),用-c参数从命令行传递就行了。NtsdNtsd 按照惯例也向软件开发人员提供。只有系统开发人员使用此命令。有关详细信息,请参阅 NTSD 中所附的帮助文件。用法:开个cmd.exe窗口,输入:

  ntsd -c q -p PID

  把最后那个PID,改成你要终止的进程的ID。如果你不知道进程的ID,任务管理器->进程选项卡->查看->选择列->勾上"PID(进程标识符)",然后就能看见了。

答2:
xp下还有两个好东东tasklist和tskill。tasklist能列出所有的进程,和相应的信息。tskill能查杀进程,语法很简单:tskill 程序名!!

作者: vkill     时间: 2006-12-1 08:34
1 可是可以,那样肯定死机

2 start *.exe