Назад | Перейти на главную страницу

Аргумент передачи сценария VBS?

Всем привет у меня в VBS есть этот скрипт:

    On Error Resume Next

If WScript.Arguments.Count < 2 Then
     WScript.Echo "This script requires arguments."
     WScript.Quit
End If

Dim sURL, sAuth, sRequestType
sUrl = "http://192.168.10.6:8080/rest/servicedeskapi/request"
sAuth = "YWRtafW5pc3dRyYXRvcjdddpQdW50bs0dUMyE="
sRequestType = "POST"

Dim sArg1, sArg2, sArg3, sBody

sBody = "{""serviceDeskId"":2,""requestTypeId"":30,""requestFieldValues"":{""summary"":""sArg1"",""description"":""sArg2""}}"

sResponse = HTTPPost(sURL, sBody)
WScript.Echo sResponse

Function HTTPPost(sURL, sRequest)
  Set oHTTP = CreateObject("MSXML2.ServerXMLHTTP")
  oHTTP.open sRequestType, sURL, false
  oHTTP.setRequestHeader "Content-Type", "application/json"
  oHTTP.setRequestHeader "Content-Length", Len(sRequest)
  oHTTP.setRequestHeader "Authorization", "Basic " & sAuth
  oHTTP.send sRequest
  HTTPPost = oHTTP.responseText
End Function

Кажется, все работает нормально, ожидайте, что переменные, которые я передаю в командной строке «sArg1, sArg2 и sArg3», будут переданы как точный текст, а не переменные, у меня это работало в прошлом, но я не помню, что я сделал, чтобы исправить Это.

csript.exe c: \ folder \ script.vbs testsarg1 testsarg2 testsarg3

Что-нибудь видите, что-то не так? Я пробовал поиграть с "" вокруг аргументов, но это, похоже, не помогает.

Большое спасибо

Где вы назначаете аргументы командной строки объявленным вами переменным?

Dim sArg1, sArg2, sArg3, sBody

Вы должны получить и присвоить переменные.

Dim sArg1, sArg2, sArg3, sBody
sArg1 = Wscript.Arguments.Item(0)
sArg2 = Wscript.Arguments.Item(1)
sArg3 = Wscript.Arguments.Item(2)
wscript.Echo "sArg1 = " + sArg1 + "; sArg2 = " + sArg2 + "; sArg3 = " + sArg3

Вам даже не нужно сначала их объявлять, если вы не хотите.