Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何使用QTP将参数传递到批处理文件?_Batch File_Vbscript_Parameter Passing_Qtp - Fatal编程技术网

Batch file 如何使用QTP将参数传递到批处理文件?

Batch file 如何使用QTP将参数传递到批处理文件?,batch-file,vbscript,parameter-passing,qtp,Batch File,Vbscript,Parameter Passing,Qtp,我有一个批处理脚本,它调用vbs文件在网页上执行一些操作。从这个批处理文件中,我将4个参数(字符串)传递给vbs文件 现在,我希望将其与我的QTP框架集成 所以我需要从框架中调用这个批处理文件,并将这些参数从QTP传递到批处理文件,该批处理文件将进一步传递到vbs代码 以下是我正在尝试的: QTP代码: Dim BatchRun Set BatchRun = CreateObject ("WSCript.shell") lob=DataTable("LOB",IntSheetNo-1) mail

我有一个批处理脚本,它调用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和stackoverflow上搜索了spome示例,但到目前为止没有一个对我有效。

不确定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代码,无需更改