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