如何停止使用.vbscript启动后台运行的批处理文件

时间:2012-10-01 08:37:55

标签: batch-file vbscript scheduled-tasks

我有一个文件invisible.vbs有以下脚本

Set WshShell = WScript.CreateObject("WScript.Shell")
obj = WshShell.Run("e:\abc.bat", 0)
set WshShell = Nothing

abc.bat有以下脚本

:loop
EVENTCREATE /T ERROR /L APPLICATION /ID 100 /D "This is  test message."
ping localhost -n 21 > nul
goto loop

现在我想手动停止abc.bat,但问题是如何?

4 个答案:

答案 0 :(得分:2)

答案是:这取决于。你想手动停止一次吗?在这种情况下,请使用@BaliC已经给出的答案。

如果您想为脚本添加一个选项以允许终止后台循环,那么您需要this之类的内容,并且需要通过Exec()生成后台进程,而不是通过Run()。这样你就可以保留一个允许你终止进程的句柄:

Set sh = CreateObject("WScript.Shell")
Set p = sh.Exec("%COMSPEC% /c e:\abc.bat")

' IE dialog creation goes here

Do While p.Status = 0
  WScript.Sleep 100
  If ie.document.all("continue").Value = "no" Then p.Terminate
Loop

答案 1 :(得分:2)

要从.bat文件执行此操作,请先将其添加到abc.bat

 TITLE=KILLME

然后运行此命令:

taskkill /fi "windowtitle eq KILLME"

您可以将标题设置为您想要的任何内容。 KILLME只是一个例子。

答案 2 :(得分:0)

进入任务管理器并结束cmd.exe进程。

答案 3 :(得分:0)

如果在命令提示符下打开它,可以按 CTRL + C 。等几秒钟它就会终止。