我在 Windows 上有一个 BAT 文件在后台运行,持续大约十分钟。现在我想在它运行时停止它,但我在任务管理器的进程列表中找不到它的名称。那么我该如何解决这个问题?谢谢!
更新1
似乎很难停止后台运行的 BAT 进程。于是我决定尝试按名称杀死 BAT 文件涉及的每个进程,这可能有点过度。对我来说这是可以接受的,因为我的 BAT 文件中的大多数进程并不经常使用,例如 ping、tracert、netstat 等。如果您有更好的解决方案,请告诉我。谢谢。
更新2
BAT 流程树
答案1
进程通常以树状方式启动,我建议启动Microsoft/Sysinternals 进程浏览器,首先单击Show Process Tree
(1)选项,然后找到您的进程并右键单击并选择Kill Process Tree
(2)这将终止原始文件及其启动的所有内容。
答案2
您可以修改批处理文件,使其使用锁定文件继续运行,方法是在命令之间插入检查文件是否存在的命令。要停止执行批处理文件,只需删除锁定文件即可。
这是一个演示批处理文件:
echo xx > "c:\temp\lockfile"
pause
if not exist "c:\temp\lockfile" goto exit
pause
del "c:\temp\lockfile"
:exit
要强制终止当前可能正在执行的进程,您可以创建一个“kill”批处理文件,其中包含任务终止所有可能从批处理文件启动的任务的命令:
del "c:\temp\lockfile"
taskkill /im mytask1.exe
taskkill /im mytask2.exe
答案3
BAT 通常只会启动 CMD.exe 的一个实例。根据脚本的功能,它还会启动其他进程。
答案4
如何调用批处理文件?
如果是从任务计划程序调用,那么您也可以从那里停止它。如果是从服务调用,那么您可以停止该服务。