【问题标题】:How to stop batch file running in background started using .vbs script如何停止使用 .vbs 脚本开始在后台运行的批处理文件
【发布时间】:2012-10-01 08:37:54
【问题描述】:
我有一个包含以下脚本的文件 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,但问题是如何?
【问题讨论】:
标签:
batch-file
vbscript
scheduled-tasks
【解决方案1】:
答案是:视情况而定。你想手动停止它一次吗?在这种情况下,请使用@BaliC 已经给出的答案。
如果您想在脚本中添加一个选项以允许终止后台循环,您将需要this 之类的东西,并且您需要通过Exec() 生成后台进程,而不是通过@ 987654324@。这样你就可以保留一个句柄来终止进程:
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
【解决方案2】:
要从.bat 文件中执行此操作,首先将其添加到abc.bat:
TITLE=KILLME
然后运行这个命令:
taskkill /fi "windowtitle eq KILLME"
您可以将标题设置为您想要的任何内容。 KILLME 只是一个例子。
【解决方案4】:
如果你在命令提示符下打开它,你可以按 CTRL + C。等待几秒钟,它就会终止。