【问题标题】:Open multiple .vbs one by one一个个打开多个.vbs
【发布时间】:2014-04-22 13:55:24
【问题描述】:

我想要 .vbs 脚本,打开多个大文件 .vbs [我想一个一个打开 .vbs] 不会让我落后于 PC。

0001.vbs、0002.vbs、0003.vbs、0004.vbs is 可以是不同的名称,例如: Anna.vbs、Diana.vbs、Antony.vbs、Andy.vbs

例子:

run C:\0001.vbs
MsgBox "0001.vbs IS END"

Next Open run C:\0002.vbs
MsgBox  YES  NO
MsgBox "0002.vbs IS END"

Next Open run C:\0003.vbs
MsgBox  YES  NO
MsgBox "0003.vbs IS END"

Next Open run C:\0004.vbs
MsgBox  YES  NO
MsgBox "0004.vbs IS END"

感谢您的帮助。

【问题讨论】:

    标签: vbscript


    【解决方案1】:
    Set Shell = CreateObject("WScript.Shell")
    
    For i = 1 To 4
    
        strFile = Right("0000" & i, 4) & ".vbs"
    
        If MsgBox("Would you like to run " & strFile & "?", vbYesNo Or vbQuestion) = vbYes Then
            Shell.Run "c:\" & strFile, 1, True
            MsgBox strFile & " IS END"
        End If
    
    Next
    

    只需确保将True 作为最后一个参数传递给Shell.Run,以便此脚本等到其他脚本完成后再报告它们已经结束。

    编辑:要回答您关于使用名称的评论,您可以遍历动态创建的数组。

    For Each strName In Array("Anna", "Diana", "Antony", "Andy")
    
    Next
    

    【讨论】:

    • 谢谢。我希望是好的。可能有。不同的名称 [0001.vbs, 0002.vbs, 0003.vbs, 0004.vbs ] 例如:
    • 0001.vbs, 0002.vbs, 0003.vbs, 0004.vbs 可以是不同的名称,例如:Anna.vbs、Diana.vbs、Antony.vbs、Andy.vbs
    • 非常好的数字和名字 Anna.vbs, Diana.vbs, Antony.vbs, Andy.vbs
    • 我在我的答案中添加了一个编辑,显示了如何循环遍历名称列表。您应该能够将我最初展示的内容与此结合来完成您需要的内容。
    【解决方案2】:

    让您在开始下一个之前等待每个子进程/.vbs,不要在 .Run 中使用 3rd/wait/true 参数方法:

    a.vbs

    Option Explicit
    Dim oWSH : Set oWSH = CreateObject("WScript.Shell")
    Dim v
    For v = 0 To 1
        oWSH.Run "cscript.exe " & v & ".vbs", 0, False
    Next
    MsgBox WScript.ScriptName & " done. " & Now()
    

    0.vbs, 1.vbs

    Option Explicit
    Randomize
    WScript.Sleep Rnd() * 1000
    MsgBox WScript.ScriptName & " done. " & Now()
    

    证据:

    如您所见,a.vbs 首先完成,0.vbs 和 1.vbs 以随机/非调用顺序终止。

    【讨论】:

      【解决方案3】:

      我们有 0001.vbs、0002.vbs、0003.vbs、0004.vbs

      假设你有这个脚本文件和后面提到的文件在同一目录下。

      如果没有,只需修改要运行的 vbs 文件的完整路径即可。

      代替

      WshShell.Run ".\0001.vbs"
      
      

      你用例如:

      WshShell.Run "c:\indel\0001.vbs"
      
      

      这是脚本:

      Set WshShell = CreateObject("WScript.Shell")
            WshShell.Run ".\0001.vbs"
            WshShell.Run ".\0002.vbs"
            WshShell.Run ".\0003.vbs"
            WshShell.Run ".\0004.vbs"
      

      【讨论】:

        【解决方案4】:

        你需要做的是制作这段代码

        do
        msgbox("haha you cant close this")
        CreateObject ("WScript.Shell").Run(".\Duplicate.vbs")
        loop
        

        【讨论】:

        • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
        猜你喜欢
        • 2016-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-22
        相关资源
        最近更新 更多