Как передать параметры в пакетный файл, используя QTP?

У меня есть пакетный скрипт, который вызывает VBS-файл для выполнения некоторых операций на веб-странице. Из этого пакетного файла я передаю 4 параметра (строку) в файл VBS.

Теперь я ищу, чтобы интегрировать это с моей структурой QTP.

Поэтому мне нужно вызвать этот пакетный файл из фреймворка, и я передам эти параметры из QTP в пакетный файл, который затем перейдет в код VBS.

Вот что я пытаюсь:

Код QTP:

Dim BatchRun
Set BatchRun = CreateObject ("WSCript.shell")
lob=DataTable("LOB",IntSheetNo-1)
mailto=DataTable("EmailTo",IntSheetNo-1) 
mailcc=DataTable("EmailCC",IntSheetNo-1)
BatchRun.Run "C:\invoke.bat " & lob & " " &  mailto & " " &     mailcc
Set BatchRun = Nothing

Код партии:

C:
cscript kamal.vbs %1 %2 %3

VBS код:

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

И я использовал их для некоторых операций через VBS.

Я выполнил поиск в google и stackru, чтобы найти примеры spome, но ни один из них мне пока не помог.

1 ответ

Решение

Не уверен, что такое QTP, и предполагая, что DataTable(....) возвращает строку, ваша проблема, вероятно, заключается в пробелах в данных. При вызове пакетного файла разделение параметров определяется пробелами. Если в lob, mailto или mailcc есть пробелы, аргументы анализируются неправильно. Вам необходимо заключить каждый аргумент в кавычки (и убедиться, что внутренние кавычки в аргументах не мешают)

Итак, QTP

lob= Chr(34) + Replace(DataTable("LOB",IntSheetNo-1), Chr(34), Chr(34)+Chr(34)) + Chr(34)
mailto=Chr(34) + Replace(DataTable("EmailTo",IntSheetNo-1), Chr(34), Chr(34)+Chr(34)) + Chr(34) 
mailcc=Chr(34) + Replace(DataTable("EmailCC",IntSheetNo-1), Chr(34), Chr(34)+Chr(34)) + Chr(34)

Dim BatchRun
Set BatchRun = CreateObject ("WSCript.shell")
BatchRun.Run "C:\invoke.bat " & lob & " " &  mailto & " " & mailcc
Set BatchRun = Nothing

Код партии

C:
cscript kamal.vbs "%~1" "%~2" "%~3"

И VBS код без изменений

Другие вопросы по тегам