EJECUTAR UN PROGRAMA CON VBSCRIPT (VBS)

Creamos un archivo con extensión .VBS, lo podemos crear con el Bloc de Notas.
En el ejemplo siguiente ejecutará el "Símbolo de Sistema"

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

Donde:
cmd.exe –> Es la aplicación que se va a ejecutar.
1 –> Indica que la ventana se abrirá normal, 2 indicaría minimizada y 3 maximizada
true –> Indica que se esperará a que se cierre la aplicación para continuar ejecutando el código, si no queremos que se espere pondremos false.

14 thoughts on “EJECUTAR UN PROGRAMA CON VBSCRIPT (VBS)

  1. Muchas gracias.
    A veces hay cosas que parecen elementales y no sabemos hacer.
    Gracias a gente como ustedes, podemos mejorar un poco el mundo.

    FVB

  2. El programa:
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Return = WshShell.Run("cmd.exe", 1, true)
    funciona correctamente pero cuando intento ejecutar otro programa,p.ej:
    "C:Archivos de programaAdobeAdobe Photoshop Lightroom 3.6lightroom.exe" substituyendolo por "cmd.exe" el script dice que no encuentra el programa, (el camino está pegado de un shorcut que funciona.
    Por favor podeis decirme donde está el error/truco?
    Muy gradecido de antemano

  3. el problema está en que la ruta del archivo contiene espacios, esto se soluciona poniendo dos dobles comillas mas las dobles comillas que hay que poner por defecto, tu ejemplo quedaría así:

    Set WshShell = WScript.CreateObject("WScript.Shell")
    Return = WshShell.Run("""C:Archivos de programaAdobeAdobe Photoshop Lightroom 3.6lightroom.exe""", 1, true)

    1. Gracias por la pronta respuesta, sin embargo, no funciona. Al poner las dobles comillas como indicas, el debugger pide el cierre del paréntesis tras el segundo par de comillas.
      He probado comillas simples, y tampoco. ¿alguna otra sugerencia?
      Saludos
      Jaime

    2. eso es porque te faltan algunas comillas, delante o detras del comando, no obstante te adjunto otra sugerencia mas:

      Set WshShell = WScript.CreateObject("WScript.Shell")
      Return = WshShell.Run("cmd /c start """" ""C:Archivos de programaAdobeAdobe Photoshop Lightroom 3.6lightroom.exe""", 0, true)

    3. Si, así funciona.
      Creo que el problema esta en que el run de Wsh solo acepta paths en dos short format, en cambio el cmd acepta paths normales.
      Creo recordar que alguno de los objetos de Wsh incorpora una funcion para trasformar cualquier camino a formato Dos. Lo investigaré y si lo encuentro te lo haré saber.
      Si lo encuentras tu antes agradeceré me lo indiques.
      Gracias por todo
      Jaime

    4. a mi no se me abría y le coloqué directamente el nombre de la aplicción, por ejemplo era
      -("C:/Archivos de Programa/Google/Chrome/Application/chrome.exe", 1, true)
      le puse
      -("crome.exe", 1, true)
      Y funcionó

    5. a mi no se me abría y le coloqué directamente el nombre de la aplicción, por ejemplo era
      -("C:/Archivos de Programa/Google/Chrome/Application/chrome.exe", 1, true)
      le puse
      -("crome.exe", 1, true)
      Y funcionó

  4. Hola me llamo jaime, tengo un pequeño problema, resulta que donde trabajo, el ing me dijo que se puede ejecutar el superdat de la version del McAfee pormedio de los usuarios del directorio activo, para que cuando los usuarios inicien sesion se actualize la version.

  5. Como puedo colocar e.g al abrir la aplicacion 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 codigo y no funciono.

    Le agradeceria que alguien me ayude

  6. Buen Día Miguel

    Si es posible, ayúdanos

    Logramos abrir cmd.exe

    Pero si quisiéramos, enviar 2 instrucciones mas , para que se ejecuten en esa pantalla emergente ¿Cómo podemos hacer?

    Para ser mas específicos , hacemos Telnet, pero como puedo enviarle el login y password

    De antemano, Gracias

    1. Hola Douglas,

      si lo que quieres ejecutar 2 programas en una misma linea de comandos en msdos, prueba algo asi:
      cmd /c notepad.exe && calc.exe
      con este ejemplo primero te abrirá el bloc de notas y luego la calculadora

      si lo que quieres es enviar texto para la ejecucion de un comando, prueba algo asi:
      cmd /c echo open 127.0.0.1 | http://ftp.exe
      este metodo no siempre funciona

      Un saludo.

Deja un comentario

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

*