如何在Windows上停止蝙蝠进程?


11

我的BAT文件在Windows上在后台运行,持续约十分钟。现在,我想在它运行时停止它,但是在任务管理器的进程列表中找不到它的名称。那么我该如何处理呢?谢谢!

更新1

似乎很难在backgroud中停止正在运行的BAT进程。我决定尝试按名称杀死BAT文件涉及的每个进程,这可能会被杀死。由于我的BAT文件中的大多数进程都不经常使用,因此我可以接受,例如ping,tracert,netstat等。如果您有更好的解决方案,请告诉我。谢谢。

更新2

BAT流程树

替代文字


1
您是如何使bat文件在后台运行的?您说您无法执行ctrl-c。我尝试break = on,如果它不起作用,但是您说您不能执行ctrl-c,因为它是“后台”。也许它已经运行并完成了,您只需要杀死它生成的内容即可。
barlop

2
@barlop,可以ShellExecute(NULL,"open","some.bat",NULL,NULL,SW_HIDE);在VC ++ 中使用backgroud来进行谴责。
SpawnST

Answers:


11

进程通常以类似树的形式启动,我建议启动Microsoft / Sysinternals Process Explorer,首先单击Show Process Tree(1)选项,然后找到您的进程,然后右键单击并选择Kill Process Tree(2)这将同时杀死原始文件和它推出的所有内容。

替代文字


杀死进程树似乎有些沉重。杀死父进程(bat命令)可能就足够了。
wag2639

1
@ wag2639,阅读问题后,我认为他想结束BAT并生成进程?据说处理需要花费很长时间,我知道随着进程启动,然后什么都没有发生,直到他们写出响应...如果树没有结束,那么就会有很多正在运行的进程什么也不做。
William Hilsum

我已经尝试过这种方法,并在答案中添加了图片。谢谢。现在,我找到了一个可以杀死由BAT文件及其子进程启动的进程的命令taskkill /F /T /IM cmd.exe。唯一的问题是,每个BAT文件都将以cmd.exe不同的PID 启动进程。我需要弄清楚哪一个是我的目标。
SpawnST 2010年

@SpawnST,什么程序正在启动BAT文件?如果有多个副本,则需要杀死正在启动它的项目。
William Hilsum

@Wil,它是由MFC / Dialog进程启动的。对话框仅在初始化时运行带有窗口外壳的BAT文件。现在,我试图确保在退出对话框时完全终止BAT进程。
SpawnST 2010年

5

您可以通过在命令之间插入检查文件是否存在的方式来修改批处理文件,以使其使用锁定文件继续运行。要停止执行批处理文件,只需删除锁定文件。

这是一个演示批处理文件:

echo xx > "c:\temp\lockfile"
pause
if not exist "c:\temp\lockfile" goto  exit
pause
del "c:\temp\lockfile"
:exit

要猛烈杀死当前可能正在执行的进程,您可以创建一个“ kill”批处理文件,该文件将包含taskkill命令,用于处理可能从该批处理文件启动的所有任务:

del "c:\temp\lockfile"
taskkill /im mytask1.exe
taskkill /im mytask2.exe

那是个好主意,但是我认为tracert例如长时间执行命令时,这可能会给我的应用造成一些问题。
SpawnST 2010年

是的,那是我现在正在做的,确实确实很暴力:-)。也许在此解决方案中不需要锁定文件。
SpawnST 2010年

有必要使批处理文件在当前任务终止时不执行下一个任务。否则,可能会发生,在完成taskkill任务之后终止task1并启动task2,因此kill批处理将简单地错过task2。
harrymc

1

BAT通常仅启动CMD.exe的实例。根据脚本的功能,它还会启动其他进程。


那么,有什么方法可以阻止它继续启动其他进程吗?
SpawnST

1
@SpawnST:如果CMD窗口可见,您不能只按CTRL + C吗?
paradroid

正如我在问题中提到的,@ jason404在后台运行。
SpawnST

1

我写了一个应用程序,至少在BAT在CMD窗口中运行时,它可能会为您提供帮助。您可以查看正在运行的应用程序窗口并获取应用程序的PID,然后可以使用我的应用程序将其杀死,还可以查看其生成的所有进程并将它们也杀死。它是一个真正简单的程序,但是对这种事情有效。如果您还不知道BAT文件,则还可以使用它来精确跟踪BAT文件在HD上的运行位置。


我正在使用VC ++ / MFC进行这项工作,我想我需要一些Windows命令来完成它。谢谢您的响应。
SpawnST

1

批处理文件如何调用?
如果来自任务计划程序,则也可以从那里停止它。如果来自服务,则可以停止该服务。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.