Аргумент передачи сценария 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

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

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

0
задан 10 October 2017 в 02:03
1 ответ

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

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

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

0
ответ дан 5 December 2019 в 07:24

Теги

Похожие вопросы