2009-08-27 14 views
22

Necesito iniciar programas en mi sistema local utilizando VBScript. Pero estoy teniendo problemas con la sintaxis. Esto es lo que estoy usando en este momento -Inicie programas cuya ruta contiene espacios

Dim objShell 
Set objShell = WScript.CreateObject("WScript.Shell") 
objShell.Run("iexplore") 
Set objShell = Nothing 

El código anterior inicia con éxito el IE. Quiero lanzar otros navegadores. Pero, si uso -

Dim objShell 
Set objShell = WScript.CreateObject("WScript.Shell") 
objShell.Run("c:\Program Files\Mozilla Firefox\firefox.exe") 
Set objShell = Nothing 

, se emite un error que indica que no se encontró el archivo o la ruta. No estoy seguro de cómo se toma el parámetro dentro de la función Run(). ¿Debo dar la ruta a un EXE o debo dar algunos comandos de DOS?

Respuesta

43

Probar: -

Dim objShell 
Set objShell = WScript.CreateObject("WScript.Shell") 
objShell.Run("""c:\Program Files\Mozilla Firefox\firefox.exe""") 
Set objShell = Nothing 

Nota el extra "" s en la cadena. Como la ruta al exe contiene espacios, debe estar entre comillas. (En este caso, simplemente usar "firefox.exe" funcionaría).

También tenga en cuenta que existen muchos programas en la carpeta c: \ Archivos de programa (x86) en las versiones de 64 bits de Windows.

+1

Hola, gracias! Me confundí con las comillas: D Pero una nota: usar simplemente "firefox.exe" no funcionó. –

+4

puede usar 'objShell.Run (" ""% ProgramFiles% \ Mozilla Firefox \ firefox.exe "" ")' para resolver el problema de 64 bits –

+2

No es realmente Jack. Es posible que Firefox aún esté instalado en% ProgramFiles (x86)%. – mgr326639

-10

Copie la carpeta, firefox.exe está en y en el c: \ solamente. El script está teniendo dificultades para subir tu árbol de archivos. Descubrí que cuando coloqué el archivo * .exe en la c: \ eliminó el mensaje de error "archivo no encontrado".

+4

No es una idea muy útil para poner todo en la raíz FS. –

+3

Esa solución llora por un montón de otros problemas. Imagine que hace esto con dos programas, ambos con un archivo llamado 'common.dll'. –

3

Se van usar Exec

Dim objShell 
Set objShell = WScript.CreateObject("WScript.Shell") 
objShell.Exec("c:\Program Files\Mozilla Firefox\firefox.exe") 
Set objShell = Nothing 
+1

Esta respuesta es idéntica a la anterior, excepto que es ligeramente incorrecta porque no incluye las comillas dobles alrededor del nombre del programa. –

+1

Esta respuesta es casi idéntica a la anterior, excepto que elimina la necesidad de varias citas, y funciona. –

+0

Aunque Exec no puede iniciar programas desde C: \ Users \ user \ Appdata \ Local, mientras que Run puede iniciar aplicaciones desde allí. (TeamSpeak 3 se instala allí, al menos para mí) –

1
Set objShell = WScript.CreateObject("WScript.Shell") 
objShell.Run("firefox") 
Set objShell = Nothing 

Por favor, intente esto

+0

No está tipeado como pretendía. simplemente desordenada alineación. hay una respuesta similar en la página con sangría apropiada. –

1

encontrar un archivo .exe de la aplicación que desea ejecutar ejemplo iexplore.exe y firefox.exe y quitar .exe y úselo en objShell.Run ("firefox")

Espero que esto ayude.

3

Está trabajando con

Set WSHELL = CreateObject("Wscript.Shell") 
WSHELL.Exec("Application_Path") 

Pero lo que debería ser el parámetro en caso de que queramos introducir el nombre de la aplicación única

por ejemplo, en el caso de Internet Explorer

WSHELL.Run("iexplore") 
1
set shell=CreateObject("Shell.Application") 
' shell.ShellExecute "application", "arguments", "path", "verb", window 
shell.ShellExecute "slipery.bat",,"C:\Users\anthony\Desktop\dvx", "runas", 1 
set shell=nothing 
0

Lo que intentas lograr es simple, y la forma en que lo estás haciendo no es así. Pruebe esto (Funciona bien para mí) y guarde el archivo como un lote de su editor de texto. Confía en mí, es más fácil.

start firefox.exe 
Cuestiones relacionadas