如何在 Windows 上停止 bat 进程?

Spa*_*nST 11 windows kill batch process

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

更新1

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

更新2

BAT流程树

替代文字

Wil*_*sum 11

进程通常以类似树的方式启动,我建议启动Microsoft / Sysinternals Process Explorer,首先单击Show Process Tree(1) 选项,然后找到您的进程并右键单击并选择Kill Process Tree(2) 这应该会杀死原始文件和它推出的一切。

替代文字


har*_*ymc 6

您可以修改批处理文件,以便它使用锁定文件继续操作,方法是在命令之间插入文件是否存在的检查。要停止执行批处理文件,只需删除锁定文件。

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

echo xx > "c:\temp\lockfile"
pause
if not exist "c:\temp\lockfile" goto  exit
pause
del "c:\temp\lockfile"
:exit
Run Code Online (Sandbox Code Playgroud)

要猛烈地杀死此时可能正在执行的进程,您可以创建一个“kill”批处理文件,其中包含可能从批处理文件启动的所有任务的taskkill命令:

del "c:\temp\lockfile"
taskkill /im mytask1.exe
taskkill /im mytask2.exe
Run Code Online (Sandbox Code Playgroud)