[VBS] Utilizar parámetros desde línea de comandos?

Iniciado por Hartwell, 16 Agosto 2014, 21:33 PM

0 Miembros y 1 Visitante están viendo este tema.

Hartwell

Hola,

Quisiera saber si es posible ejecutar un vbscript desde cmd utilizando parámetros.

Por ejemplo, quiero descargar un archivo y mi idea es ejecutar la siguiente linea:

cscript.exe download.vbs [url] [output]

Aplicandolo a un código simple como el siguiente:

strSource = "http://www.google.com/images/logo.gif"
strDest = "c:\logo.gif"
set HTTP = CreateObject("Microsoft.XMLHTTP")
HTTP.open "GET", strSource, False
HTTP.send
set Stream = createobject("adodb.stream")
Const adTypeBinary = 1
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
Stream.type = adTypeBinary
Stream.open
Stream.write HTTP.responseBody
Stream.savetofile strDest, adSaveCreateOverWrite
set Stream = nothing
set HTTP = nothing


La finalidad no es para malware, pero supongo que aquí me pueden ayudar.

Saludos.

Eleкtro

Cita de: Hartwell en 16 Agosto 2014, 21:33 PMQuisiera saber si es posible ejecutar un vbscript desde cmd utilizando parámetros.

Si, se puede.

Arguments Property (WScript Object)

Código (vb) [Seleccionar]
Set Arguments = WScript.Arguments

If Arguments.Count <> 2 Then
  WScript.Echo "Cantidad de parámetros incorrecta."
  WScript.Quit(1)

Else
  strSource = WScript.Arguments(0)
  strDest = WScript.Arguments(1)
  ' Resto del código aquí...
 
End If


Saludos.








Hartwell

Buenísimo!

Y cómo sería el %1 y %2 para reemplazar [url] y [output]?

strSource = "[url]"
strDest = "[output]"


Me podrías dar un ejemplo por favor.

Eleкtro

#3
Cita de: Hartwell en 16 Agosto 2014, 22:04 PMY cómo sería el %1 y %2 para reemplazar [url] y [output]?

Me podrías dar un ejemplo por favor.

Arriba te puse el ejemplo mostrándote como se asignarían los argumentos a esas variables... ¿lo has mirado?.

Respecto a las variables especiales %1 y %2 de Batch, porfavor, olvída ese modo de ver las cosas en la programación, de todas formas este es el equivalente:
%1 = WScript.Arguments(0)
%2 = WScript.Arguments(1)


Saludos!








Hartwell