Как передать параметры в пакетный файл, используя 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 код без изменений