【发布时间】:2017-07-19 15:29:58
【问题描述】:
场景:我们有一些计划的作业 (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 启动它,它会等待整个加载过程完成(它不会在后台运行),我想在以 wscript 运行时执行此操作 - 因为由于有很多工作,编辑他们如何调用脚本现在不是一个选项。这包括创建一个将SCRIPT.vbs 称为cscript 的.bat 文件。
我还尝试搜索“如何在 VB 脚本中运行另一个 .vbs 文件”以以cscript 运行,但未能成功。
我能做什么?
有没有办法让wscript等待加载?
有没有办法在传递 2 个参数的同时调用同一文件夹中的 .vbs(不将其作为参数发送)?
我没有看到另一个选项?
编辑:这是我到目前为止所做的,但我得到的是“预期的语句结束”。
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
【问题讨论】: