Передача аргументов (содержащих пробелы) в VBS через шелк

Я пишу, чтобы вызвать VBScript из Silk bdh и передаю аргументы из Silk. Моя первая проблема - более 1 аргумента (всего 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")

1 ответ

Вы всегда указываете параметры с пробелами. Это базовая Windows и была представлена ​​19 лет назад. За исключением chdir и notepad, все остальные команды и код, который анализирует командные строки, ожидают, что вещи, содержащие пробелы, будут заключены в кавычки.

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

В VBS мы написали бы приведенную выше строку для выполнения как (chr(34) является символом кавычки)

"dir " & chr(34) & "c:\some folder\some file.txt" & chr(34) & " /a"
Другие вопросы по тегам