Vbscript Wscript使进程不在后台运行或在完成时等待

Vbscript Wscript使进程不在后台运行或在完成时等待,vbscript,wsh,Vbscript,Wsh,场景:我们有一些调度作业(Control-M)运行许多进程,其中一些执行一个.VBS文件(带参数),该文件从XML文件读取配置并将其发送到公司的软件,该软件解释配置并将数据加载到表中 我需要有关VBS文件的帮助,如上所述,该文件仅从XML获取指令,并通过以下步骤将其发送到软件(同时记录每个步骤): 查找XML 创建登录软件的对象(使用XML参数) 登录数据库(使用XML参数) 选择哪个数据库(XML…) 发送命令以启动加载过程 object.LoadRepositoryTable(XML)

场景:我们有一些调度作业(Control-M)运行许多进程,其中一些执行一个.VBS文件(带参数),该文件从XML文件读取配置并将其发送到公司的软件,该软件解释配置并将数据加载到表中

我需要有关VBS文件的帮助,如上所述,该文件仅从XML获取指令,并通过以下步骤将其发送到软件(同时记录每个步骤):

  • 查找XML

  • 创建登录软件的对象(使用XML参数)

  • 登录数据库(使用XML参数)

  • 选择哪个数据库(XML…)

  • 发送命令以启动加载过程

    object.LoadRepositoryTable(XML)
    
  • 问题在于,由于默认解释器是
    wscript
    ,因此在执行脚本时,它在后台运行,作业调度器认为它已完成执行并开始下一个作业

    在CMD上执行脚本,如果我以
    cscript script.vbs
    的形式启动它,它将等待整个加载过程完成(它不会在后台运行),我希望在以
    wscript
    的形式运行时执行此操作,因为有许多作业,所以现在不需要编辑它们如何调用脚本。这包括创建一个.bat文件,将
    SCRIPT.vbs
    作为
    cscript
    调用

    我还尝试搜索“如何在VB脚本中运行另一个.vbs文件”以作为
    cscript
    运行,但没有成功

    我能做什么

    有没有办法让
    wscript
    等待加载

    在传递2个参数时,是否有方法调用同一文件夹中的.vbs(而不将其作为参数发送)

    我没有看到的另一个选择

    编辑:以下是我到目前为止的内容,但我得到的是“预期的陈述结束”


    cscript
    是您问题的解决方案。让您的计划程序使用
    cscript.exe
    运行每个VBScript,或者(如果由于某种原因无法运行),通过运行

    wscript.exe //h:cscript
    
    曾经当过管理员

    即使您修复了最后一行中的语法错误,拼凑在一起的脚本也无法解决问题,因为只要您使用
    wscript.exe
    运行它,它仍然会立即返回。只要所有这些都发生在后台,该脚本中的代码是否同步运行其他脚本并不重要

    object.SelectDatabase("DATABASE_NAME")
    
    object.LoadRepositoryTable(XML)
    
    Dim objShell
    Dim arg_dir 
    arg_dir = Wscript.Arguments.Item(0)
    Dim arg_xml 
    arg_xml = Wscript.Arguments.Item(1)
    Set objShell = CreateObject("Wscript.Shell")
    
    objShell.Run "cmd /k cscript ""C:\Folder\Scripts\SCRIPT.vbs" &" "& arg_dir &" "& arg_xml"", 1, True
    
    wscript.exe //h:cscript