0

我正在使用 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"

VB:

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

1 回答 1

2

如果您只是将其打印到标准输出,则可以取回该值。所以只需像这样写出 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 /?以获得更多帮助。

于 2013-11-07T12:23:33.440 回答