【问题标题】:Passing parameters from batch to vba and get output value back in batch将参数从批处理传递到 vba 并批量获取输出值
【发布时间】:2013-11-07 12:11:09
【问题描述】:

我正在使用 QuickTest Professional 制作一个实用程序,它调用带有一些参数的批处理文件。

这个批处理文件进一步调用了一个vbscript并将一些参数传递给这个vbs文件。

这个vbs文件执行操作并生成一个数字。

我希望这个数字从 vbs 流回到批处理,然后流到 QTP。

这是我到目前为止所想出的:

  QTP(sending parameters to bat)  >>   Batch(sending parameters to vbs)   >>  VBS (generates a number)   

现在我希望这个 vbs 返回输出编号

  VBS   >>  Batch(same bat which called vbs file)   >>  QTP(same qtp process which called this batch)

这是我的代码:

QTP:(调用批处理)

   Dim BatchRun
   Set BatchRun = CreateObject ("WSCript.shell")
   invokefile= Chr(34) + "C:/invokebugz.bat" + Chr(34) 
   BatchRun.Run invokebugzfile & lob & " " &  mailto & " " & mailcc & " " &  title  & " " &   subject

蝙蝠:(调用vbs)

   cd C:\
   cscript abc.vbs "%~1" "%~2" "%~3" "%~4" "%~5"

vbs:

 Set args = Wscript.Arguments ' to accept command line arguments
 xprod = args(0)
 mailto = args(1)
 mailcc = args(2)
 xtitle = args(3)
 xcomment = args(4)

【问题讨论】:

    标签: batch-file vbscript cmd qtp


    【解决方案1】:

    如果您只是将其打印到标准输出,则可以取回该值。因此,只需将 VBS 的结果写成这样:

    Wscript.Echo result
    

    for 命令可用于获取您调用的命令的输出:

    for /f %%a in ('cscript abc.vbs "%~1" "%~2" "%~3" "%~4" "%~5"') do (
        echo The output is %%a
    )
    

    如果输出只是一个数字,则不需要在 for 循环中添加任何额外的选项。尝试运行for /? 以获得更多帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      • 2016-07-03
      相关资源
      最近更新 更多