Запустить программы, путь которых содержит пробелы

Мне нужно запускать программы в моей локальной системе, используя VBScript. Но у меня проблемы с синтаксисом. Это то, что я использую прямо сейчас -

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

Приведенный выше код успешно запускает IE. Я хочу запустить другие браузеры. Но если я использую -

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

выдает ошибку, сообщающую, что файл или путь не найден. Я не уверен, как параметр внутри функции Run() берется - я должен дать путь к EXE или я должен дать некоторые команды DOS?!

8 ответов

Решение

Пытаться:-

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

Обратите внимание на дополнительные "" в строке. Поскольку путь к exe содержит пробелы, он должен быть заключен в кавычки. (В этом случае просто использовать "firefox.exe").

Также имейте в виду, что многие программы существуют в папке c:\Program Files (x86) в 64-разрядных версиях Windows.

Вы используете Exec

Dim objShell
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Exec("c:\Program Files\Mozilla Firefox\firefox.exe")
Set objShell = Nothing
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 

Это работает с

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

Но каким должен быть параметр, если мы хотим ввести только имя приложения

например, в случае Internet Explorer

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

Пожалуйста, попробуйте это

Найдите файл.exe для приложения, которое вы хотите запустить, например, iexplore.exe и firefox.exe и удалите.exe и используйте его в objShell.Run("firefox")

Надеюсь, это поможет.

То, чего вы пытаетесь достичь, просто, а то, как вы это делаете, - нет. Попробуйте это (работает хорошо для меня) и сохраните файл как пакет из вашего текстового редактора. Поверь мне, это проще.

start firefox.exe

Скопируйте папку, Firefox.exe находится и поместите только в папку c:\. Скрипт испытывает трудности при лазании по дереву файлов. Я обнаружил, что когда я поместил файл *.exe в каталог c:\, он устранил сообщение об ошибке "файл не найден".

Другие вопросы по тегам