【问题标题】: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 只是一个例子。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-11-17
            • 1970-01-01
            • 1970-01-01
            • 2018-07-08
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多