1

我写信是为了从 Silk bdh 调用 VBScript 并从 Silk 传递参数。我的第一个问题是有多个参数(总共 4 个参数)。我的第二个问题是这些参数包含空格。

下面是程序:

sCmdLine := "cscript.exe";
//sParms := "C:\\QK\\test1_old.vbs \"   \""  +string(error_counter)+"\" \"" +error_timer  ; 
sParms := "C:\\QK\\test1.vbs \" 2\string(error_counter)+ 

error_timer+error_details+error_time;

hProcessId := ProcessInitialize(sCmdLine, PROCESS_PIPED, sParms,"C:\\WINDOWS\\System32\\");
ProcessSetOutputBuffer(hProcessId, reportedTo, STRING_COMPLETE);
ProcessStart(hProcessId);
StrSearchDelimited(reportedTo,STRING_COMPLETE,reportedTo,"reserved.",1,NULL,1,STR_SEARCH_FIRST);
print("reportedTo*****"+reportedTo); 

VBS程序是:

dim captcha

errorcounter=Wscript.Arguments(0)
errortimer=Wscript.Arguments(1)
errordetails=Wscript.Arguments(2)
errortime=Wscript.Arguments(3)

text= "Level : " & errorcounter
text= text & vbNewline
text = text & "Page : " & errortimer
text= text & vbNewline
text = text & "Error : " & errordetails
text= text & vbNewline
text = text & "Error Time : " & errortime

reportedto=inputbox( text,"ReportedTo")
4

1 回答 1

0

您总是用空格引用参数。这是基本的 Windows,于 19 年前推出。除了 chdir 和 notepad 之外,解析命令行的所有其他命令和代码都希望包含空格的内容被引用。

dir "c:\some folder\some file.txt" /a

在 vbs 中,我们将上面的字符串写入执行为 (chr(34) is a quote char)

"dir " & chr(34) & "c:\some folder\some file.txt" & chr(34) & " /a"
于 2014-03-28T13:21:19.830 回答