2009-08-27 9 views
22

Potrzebuję uruchomić programy w moim lokalnym systemie za pomocą VBScript. Ale mam problem ze składnią. To właśnie używam teraz -Uruchamiaj programy, których ścieżka zawiera spacje.

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

Powyższy kod pomyślnie uruchamia IE. Chcę uruchomić inne przeglądarki. Ale jeśli użyję -

to jest wyrzucanie błąd informujący, że plik lub ścieżka nie została znaleziona. Nie jestem pewien, w jaki sposób jest wykonywany parametr w funkcji Run() - czy powinienem podać ścieżkę do EXE, czy też powinienem podać komendy DOS ?!

Odpowiedz

43

Spróbuj: -

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

Uwaga dodatkowa "" s w ciągu. Ponieważ ścieżka do pliku exe zawiera spacje, musi być zawarta w cudzysłowach. (W takim przypadku wystarczy użyć "firefox.exe").

Również pamiętać, że istnieje wiele programów w folderze C: \ Program Files (x86) na 64-bitowych wersjach systemu Windows.

+1

Cześć, dzięki! Pomyliłem się z cytatami: D Ale jedna uwaga - używanie po prostu "firefox.exe" nie działało. –

+4

można użyć 'objShell.Run ("" "% ProgramFiles% \ Mozilla Firefox \ firefox.exe" "")' aby obejść problem 64-bitowym –

+2

Niezupełnie Jack. Firefox może nadal być zainstalowany w% ProgramFiles (x86)%. – mgr326639

-10

Skopiuj folder, firefox.exe jest i miejsce w katalogu c: \ only. Skrypt ma trudności z wspinaniem się na drzewo plików. Znalazłem, że po umieszczeniu pliku * .exe w pliku c: \ usunięto komunikat o błędzie "nie znaleziono pliku".

+4

Niezbyt użyteczne sokution do umieszczenia wszystkiego w katalogu głównym FS. –

+3

To rozwiązanie wywołuje wiele innych problemów. Wyobraź sobie, że robisz to z dwoma programami, obydwoma zawierającymi plik o nazwie "common.dll". –

3

Ty van używać Exec

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

Ta odpowiedź jest identyczna z powyższą, z tym że jest lekko błędna, ponieważ nie zawiera podwójnych cudzysłowów wokół nazwy programu. –

+1

Ta odpowiedź jest prawie identyczna z powyższą, z tym że eliminuje potrzebę kilku cytatów i działa. –

+0

Chociaż Exec nie może uruchamiać programów z C: \ Users \ user \ appdata \ Local, a Run może uruchamiać aplikacje z tego miejsca. (TeamSpeak 3 instaluje się tam, przynajmniej dla mnie) –

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

Spróbuj tego

+0

Nie jest wpisany tak, jak zamierzałem. po prostu zepsuł wyrównanie. istnieje podobna odpowiedź na stronie z odpowiednim wcięciem. –

1

znaleźć plik .exe do aplikacji, którą chcesz uruchomić przykład iexplore.exe i firefox.exe i usunięcia .exe i użyj go w objShell.Run ("firefox")

Mam nadzieję, że to pomoże.

3

To działa z

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

Ale jaka powinna być parametrem w przypadku chcemy wprowadzić nazwę aplikacji tylko

przykład w przypadku 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

To, co próbujesz osiągnąć, jest proste, a sposób, w jaki to robisz, nie jest. Wypróbuj to (działa dobrze dla mnie) i zapisz plik jako plik wsadowy z edytora tekstu. Zaufaj mi, to jest łatwiejsze.

start firefox.exe 
Powiązane problemy