场景:我们有一些预定的作业(Control-M)运行许多过程,其中一些执行.VBS文件(带参数)从XML文件读取配置并将其发送到公司的软件,解释它和将数据加载到表格上。
我需要VBS文件的帮助,如上所述,只获取XML中的指令并使用这些步骤将其发送到软件(同样,记录每一步):
查找XML;
创建一个登录软件的对象(带有XML参数);
Dim object
Set object = CreateObject("service.location.id")
登录数据库(带XML参数);
object.Login("DATABASE_NAME")
选择哪个数据库(XML ...);
object.SelectDatabase("DATABASE_NAME")
发送命令以启动加载进程
object.LoadRepositoryTable(XML)
问题在于,由于默认解释器为wscript
,因此在执行脚本时,它在后台运行,Job Scheduler认为它已完成执行并开始下一个作业。
在CMD上执行脚本,如果我以cscript SCRIPT.vbs
启动它等待整个加载过程完成(它不在后台运行),我想在{{1}运行时执行此操作因为有很多工作,所以编辑他们调用脚本的方式现在不是一个选择。这包括创建一个将wscript
称为SCRIPT.vbs
的.bat文件。
我还尝试搜索“如何在VB脚本中运行另一个.vbs文件”以cscript
运行,但无法使其正常工作。
我该怎么办?
有没有办法让cscript
等待加载?
有没有办法在传递2个参数时在同一个文件夹中调用.vbs(不将其作为参数发送)?
我没有看到另一种选择?
编辑:这是我到目前为止所得到的,但我得到了“期待的结束声明”。
wscript
答案 0 :(得分:1)
cscript
是解决您问题的方法。让调度程序使用cscript.exe
运行每个VBScript,或者(如果由于某种原因不可能)通过运行
cscript
成为默认脚本宿主
wscript.exe //h:cscript
作为管理员。
您拼凑在一起的脚本无法解决您的问题,即使您在最后一行修复了语法错误,因为只要您使用wscript.exe
运行它,它仍会立即返回。只要所有这些都在后台发生,该脚本中的代码同步运行其他脚本并不重要。