1

我有一个文件 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

4 回答 4

2

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

如果您想在脚本中添加一个选项以允许终止后台循环,您将需要这样的东西并且您需要通过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
于 2012-10-01T12:12:15.003 回答
2

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

 TITLE=KILLME

然后运行这个命令:

taskkill /fi "windowtitle eq KILLME"

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

于 2012-10-02T04:40:37.297 回答
0

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

于 2012-10-01T08:39:44.623 回答
0

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

于 2013-12-27T11:31:24.357 回答