【问题标题】:How to stop a specific script in VBScript如何在 VBScript 中停止特定脚本
【发布时间】:2023-04-01 07:30:01
【问题描述】:

是否有停止特定脚本的代码?我已经看到了一种允许您使用 taskkill 结束 所有 脚本的方法。

Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "taskkill /f /im Cscript.exe", , True 
WshShell.Run "taskkill /f /im wscript.exe", , True  

我只是想结束一个在 wscript.sleep 中休眠的特定脚本,而不是一次运行的每个脚本。

【问题讨论】:

    标签: vbscript wsh


    【解决方案1】:

    试试下面。您需要保留要终止的进程的 ProcessId。下面的代码打开一个记事本并杀死它。此示例向您展示如何在脚本启动时捕获它的 ProcessId,然后将其终止。

    Private Sub KillTest()
      Dim killCmd
      Dim pid
    
      Set WshShell = CreateObject("WScript.Shell")
      Set EngineRun = WshShell.Exec("notepad")
      pid = EngineRun.ProcessID
    
      killCmd = "taskkill /pid " & CStr(pid)
      Set EngineRun = WshShell.Exec(killCmd)
      Set EngineRun = Nothing
      Set WshShell = Nothing
    End Sub
    

    【讨论】:

    • 我对 VBScript 不是很了解; ProcessId 是什么意思?那是我要结束的特定代码吗?
    • ProcessID 或 PID 是操作系统分配给正在运行的进程的唯一标识符。 Mukul 的代码应该与您的代码相同,除非您将 Setting EngineRun 执行脚本的返回值。您还需要额外的逻辑来确定何时是杀死它的正确时间。
    • 那么执行我的脚本的返回值是多少?另外,我的脚本是否需要 CreateObject 部分?
    猜你喜欢
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2016-04-19
    • 2023-04-11
    • 2019-10-14
    相关资源
    最近更新 更多