EJECUTAR UN PROGRAMA CON VBSCRIPT (VBS)

Creamos un archi­vo con exten­sión .VBS, lo podemos crear con el Bloc de Notas.
En el ejem­p­lo sigu­iente eje­cu­tará el "Sím­bo­lo de Sistema"

Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("cmd.exe", 1, true)

Donde:
cmd.exe –> Es la apli­cación que se va a eje­cu­tar.
1 –> Indi­ca que la ven­tana se abrirá nor­mal, 2 indi­caría min­i­miza­da y 3 max­i­miza­da
true –> Indi­ca que se esper­ará a que se cierre la apli­cación para con­tin­uar eje­cu­tan­do el códi­go, si no quer­e­mos que se espere pon­dremos false.

21 comentarios en “EJECUTAR UN PROGRAMA CON VBSCRIPT (VBS)

  1. Muchas gra­cias.
    A veces hay cosas que pare­cen ele­men­tales y no sabe­mos hac­er.
    Gra­cias a gente como ust­edes, podemos mejo­rar un poco el mundo.

    FVB

  2. El pro­gra­ma:
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Return = WshShell.Run("cmd.exe", 1, true)
    fun­ciona cor­rec­ta­mente pero cuan­do inten­to eje­cu­tar otro programa,p.ej:
    "C:Archivos de pro­gra­maAdobeAd­obe Pho­to­shop Light­room 3.6lightroom.exe" sub­sti­tuyen­do­lo por "cmd.exe" el script dice que no encuen­tra el pro­gra­ma, (el camino está pega­do de un shorcut que fun­ciona.
    Por favor podeis decirme donde está el error/truco?
    Muy grade­ci­do de antemano

  3. el prob­le­ma está en que la ruta del archi­vo con­tiene espa­cios, esto se solu­ciona ponien­do dos dobles comil­las mas las dobles comil­las que hay que pon­er por defec­to, tu ejem­p­lo quedaría así:

    Set WshShell = WScript.CreateObject("WScript.Shell")
    Return = WshShell.Run("""C:Archivos de pro­gra­maAdobeAd­obe Pho­to­shop Light­room 3.6lightroom.exe""", 1, true)

    1. Gra­cias por la pronta respues­ta, sin embar­go, no fun­ciona. Al pon­er las dobles comil­las como indi­cas, el debug­ger pide el cierre del parén­te­sis tras el segun­do par de comil­las.
      He proba­do comil­las sim­ples, y tam­poco. ¿algu­na otra sug­eren­cia?
      Salu­dos
      Jaime

    2. eso es porque te fal­tan algu­nas comil­las, delante o detras del coman­do, no obstante te adjun­to otra sug­eren­cia mas:

      Set WshShell = WScript.CreateObject("WScript.Shell")
      Return = WshShell.Run("cmd /c start """" ""C:Archivos de pro­gra­maAdobeAd­obe Pho­to­shop Light­room 3.6lightroom.exe""", 0, true)

    3. Si, así fun­ciona.
      Creo que el prob­le­ma esta en que el run de Wsh solo acep­ta paths en dos short for­mat, en cam­bio el cmd acep­ta paths nor­males.
      Creo recor­dar que alguno de los obje­tos de Wsh incor­po­ra una fun­cion para trasfor­mar cualquier camino a for­ma­to Dos. Lo inves­ti­garé y si lo encuen­tro te lo haré saber.
      Si lo encuen­tras tu antes agrade­ceré me lo indiques.
      Gra­cias por todo
      Jaime

    4. a mi no se me abría y le colo­qué direc­ta­mente el nom­bre de la aplic­ción, por ejem­p­lo era
      -("C:/Archivos de Programa/Google/Chrome/Application/chrome.exe", 1, true)
      le puse
      -("crome.exe", 1, true)
      Y fun­cionó

      1. Bien ahí, así tam­bién me funciono.

        Sub firefox1()
        Set objShell = CreateObject("Wscript.Shell")
        objShell.Run "cmd /c start firefox.exe"
        End Sub

    5. a mi no se me abría y le colo­qué direc­ta­mente el nom­bre de la aplic­ción, por ejem­p­lo era
      -("C:/Archivos de Programa/Google/Chrome/Application/chrome.exe", 1, true)
      le puse
      -("crome.exe", 1, true)
      Y fun­cionó

  4. Hola me llamo jaime, ten­go un pequeño prob­le­ma, resul­ta que donde tra­ba­jo, el ing me dijo que se puede eje­cu­tar el super­dat de la ver­sion del McAfee porme­dio de los usuar­ios del direc­to­rio acti­vo, para que cuan­do los usuar­ios ini­cien sesion se actu­al­ize la version.

  5. Como puedo colo­car e.g al abrir la apli­ca­cion que abra una URL con firefox?

    Set WshShell = WScript.CreateObject("WScript.Shell")
    Return = WshShell.Run("firefox.exe ‑https://www.mozilla.org", 1, false)

    puse este codi­go y no funciono.

    Le agrade­ce­ria que alguien me ayude

  6. Buen Día Miguel

    Si es posi­ble, ayúdanos

    Logramos abrir cmd.exe

    Pero si quisiéramos, enviar 2 instruc­ciones mas , para que se eje­cuten en esa pan­talla emer­gente ¿Cómo podemos hacer?

    Para ser mas especí­fi­cos , hace­mos Tel­net, pero como puedo enviar­le el login y password

    De ante­mano, Gracias

    1. Hola Dou­glas,

      si lo que quieres eje­cu­tar 2 pro­gra­mas en una mis­ma lin­ea de coman­dos en msdos, prue­ba algo asi:
      cmd /c notepad.exe && calc.exe
      con este ejem­p­lo primero te abrirá el bloc de notas y luego la calculadora

      si lo que quieres es enviar tex­to para la eje­cu­cion de un coman­do, prue­ba algo asi:
      cmd /c echo open 127.0.0.1 | http://ftp.exe
      este meto­do no siem­pre funciona

      Un salu­do.

  7. Ami­gos nece­si­to gener­ar una apli­ca­cion VBS que me per­mi­ta eje­cu­tar un coman­do CMD pero que la apli­ca­cion me pida en un cam­po de tex­to un val­or, este val­or lo inte­gre al coman­do y eje­cute el mis­mo des­de CMD. no he encon­tra­do la com­bi­na­cion de codi­go correcta 

    El coman­do que debo eje­cu­tar es :

    "C:\Program Files (x86)\Microsoft Con­fig­u­ra­tion Manager\AdminConsole\bin\i386\CmRcViewer.exe" XXXX.dominio.corp \\servidor1 servidor2.com

    donde XXX es el val­or que ten­dria que ingre­sar por medio de un textbox en el VBS y que ese coman­do arma­do se eje­cute en CMD

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

6 + 1 =