vbscript - descargar - subíndice fuera de rango<4,1>
vbscript virus (1)
El error proviene de VBScript, los dos argumentos indican qué línea y qué columna han desencadenado el error, en este caso, la línea 4 y la columna 1.
Entonces, el problema es probable (si este es todo el script fuente)
jenkins = WScript.Arguments.Item(3)
El error de Subscript Out of Range
se traduce aproximadamente a, el índice de matriz actual que está pasando está más allá de los límites de la matriz.
Entonces la probabilidad es que no hay un argumento 4 que se aprueba (las matrices de VBScript son 0, entonces 3 es de hecho 4) .
Puede probarlo usted mismo con una pequeña modificación en el script para depurar la colección WScript.Arguments
. Simplemente agregue el código a continuación a la parte superior de su secuencia de comandos.
Dim i
For i = 0 To WScript.Arguments.Count - 1
WScript.Echo "Index " & i & " = " & WScript.Arguments.Item(i)
Next
WScript.Arguments
la lista WScript.Arguments
y WScript.Arguments
lo que está contenido en cada uno.
Probando con
cscript //nologo "test62.vbs" "SVNRepo" "Rev2" "C:/Program Files/VisualSVN Server/bin/svnlook.exe" http://localhost:8080/jenkins
Salida:
Index 0 = SVNRepo
Index 1 = Rev2
Index 2 = C:/Program Files/VisualSVN Server/bin/svnlook.exe
Index 3 = http://localhost:8080/jenkins
Estoy implementando el enganche post commit en svn repo para desencadenar la compilación de jenkins pero obteniendo una excepción que creo que está en el archivo commit.vb. Sé que esta es una pregunta tan simple, pero no he trabajado en vb así que no tengo idea. Siguiendo este tutorial - https://wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin . También me ayuda a especificar el trabajo específico que necesito activar. Asumo que con esta configuración se activarán todos los trabajos en jenkins.
post-commit.bat
SET REPOS=%1
SET REV=%2
SET CSCRIPT=%windir%/system32/cscript.exe
SET VBSCRIPT=C:/Repositories/commit.vbs
SET SVNLOOK=C:/Program Files/VisualSVN Server/bin/svnlook.exe
SET JENKINS=http://localhost:8080/jenkins
"%CSCRIPT%" "%VBSCRIPT%" "%REPOS%" %2 "%SVNLOOK%" %JENKINS%
@pause
commit.vbs
repos = WScript.Arguments.Item(0)
rev = WScript.Arguments.Item(1)
svnlook = WScript.Arguments.Item(2)
jenkins = WScript.Arguments.Item(3)
Set shell = WScript.CreateObject("WScript.Shell")
Set uuidExec = shell.Exec(svnlook & " uuid " & repos)
Do Until uuidExec.StdOut.AtEndOfStream
uuid = uuidExec.StdOut.ReadLine()
Loop
Wscript.Echo "uuid=" & uuid
Set changedExec = shell.Exec(svnlook & " changed --revision " & rev & " " & repos)
Do Until changedExec.StdOut.AtEndOfStream
changed = changed + changedExec.StdOut.ReadLine() + Chr(10)
Loop
Wscript.Echo "changed=" & changed
url = jenkins + "crumbIssuer/api/xml?xpath=concat(//crumbRequestField,"":"",//crumb)"
Set http = CreateObject("Microsoft.XMLHTTP")
http.open "GET", url, False
http.setRequestHeader "Content-Type", "text/plain;charset=UTF-8"
http.send
crumb = null
if http.status = 200 then
crumb = split(http.responseText,":")
end if
url = jenkins + "subversion/" + uuid + "/notifyCommit?rev=" + rev
Wscript.Echo url
Set http = CreateObject("Microsoft.XMLHTTP")
http.open "POST", url, False
http.setRequestHeader "Content-Type", "text/plain;charset=UTF-8"
if not isnull(crumb) then
http.setRequestHeader crumb(0),crumb(1)
http.send changed
if http.status <> 200 then
Wscript.Echo "Error. HTTP Status: " & http.status & ". Body: " & http.responseText
end if
end if