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"

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)
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 に答える