Plik .bat - wybor z czterech opcji

Stworzyłem sobie taki plik wsadowy:

@echo off


:Start

cls

echo Otwiera program zainstalowany w domyslnym katalogu

echo -

echo -

echo [1]. Mozilla Firefox

echo [2]. Opera

echo [3]. Google Chrome

echo [4]. WinRAR

echo [5]. Zakoncz

echo -

echo -

choice /c 12345 /n /m "Wybierz program do uruchomienia : "

if errorlevel 5 goto Koniec

if errorlevel 4 goto WinRAR

if errorlevel 3 goto Chrome

if errorlevel 2 goto Opera


echo Trwa uruchamianie przegladarki internetowej Mozilla Firefox...

C:\Program Files\Mozilla Firefox\firefox.exe

goto Start


:Opera

echo Trwa uruchamianie przegladarki internetowej Opera...

C:\Program Files\Opera\opera.exe

goto Start


:Chrome

echo Trwa uruchamianie przegladarki internetowej Google Chrome...

C:\Users\%USERPROFILE%\AppData\Local\Google\Chrome\Application\chrome.exe

goto Start


:WinRAR

echo Trwa uruchamianie programu archiwizujacego WinRAR

C:\Program Files\WinRAR\WinRAR.exe

goto Start


:Koniec

Jednak gdy chcę uruchomić jakiś program wyskakuje błąd, że nazwa C:\Program jest nierozpoznawana jako polecenie wewnętrzne lub zewnętrzne. Co robię źle?

Czytałem że trzeba wziąć ścieżkę w nawiasy np.“program files”

Tylko jeżeli w ścieżce znajduję się spacja :stuck_out_tongue:

Po pierwsze by wstawić pusty wiersz lepiej stosować “echo.” (bez spacji) zamiast echo - (po co myślnik) jeżeli o to tu chodziło. Co jak co ale nie widzę atrybutu /m dla programu choice, jeżeli chodzi o ścieżki do programów to najlepiej podawać je w ten sposób “C:\Program Files\WinRAR\WinRAR.exe” obojętnie czy zawiera czy nie zawiera spacji w jakimś miejscu. Daj znać czy pomogło :slight_smile:

Działa, ale Firefox i Chrome się dalej nie włączają.

Obecny kod:

@echo off


:Start

cls

echo Otwiera program zainstalowany w domyslnym katalogu

echo.

echo.

echo [1]. Mozilla Firefox

echo [2]. Opera

echo [3]. Google Chrome

echo [4]. WinRAR

echo [5]. Zakoncz

echo.

echo.

choice /c 12345 /n /m "Wybierz program do uruchomienia : "

if errorlevel 5 goto Koniec

if errorlevel 4 goto WinRAR

if errorlevel 3 goto Chrome

if errorlevel 2 goto Opera

if errorlevel 1 goto Firefox


:Firefox

echo Trwa uruchamianie przegladarki internetowej Mozilla Firefox...

"C:\Program Files\Mozilla Firefox\firefox.exe"

goto Start


:Opera

echo Trwa uruchamianie przegladarki internetowej Opera...

"C:\Program Files\Opera\opera.exe"

goto Start


:Chrome

echo Trwa uruchamianie przegladarki internetowej Google Chrome...

"C:\Users\%USERPROFILE%\AppData\Local\Google\Chrome\Application\chrome.exe"

goto Start


:WinRAR

echo Trwa uruchamianie programu archiwizujacego WinRAR

"C:\Program Files\WinRAR\WinRAR.exe"

goto Start


:Koniec

Jeśli usuniesz to cls (pod :start), może będziesz w stanie odczytać komunikat błędu z powłoki lub firefoxa.

2ba4a5f5c0ef2806m.jpg

A jak wpisać ścieżkę, żeby Chrome się uruchamiał? Wyskakuje taki błąd:

bfc493ce8e028608m.jpg

Spróbuj skopiować ścieżkę z właściwości pliku wykonywalnego chrome.exe i dopisać nazwę pliku wykonywalnego do tej ścieżki (może jest błąd, którego obaj nie widzimy :wink: ). Spróbuj zmienną środowiskową zastąpić bieżącą nazwą usera.

Ech…

Ścieżka do Program Files to %programfiles%. Ale w systemach x64 jest także katalog “Program Files (x86)”, w którym np. domyślnie instalowany jest FF. Ścieżka do niego to %ProgramFiles(x86)%. Można próbować uruchamiać aplikację z obu lokalizacji, w końcu jedna będzie prawidłowa, albo uruchamiać z właściwej w zależności od wykrytej wersji systemu.

Natomiast dane aplikacji użytkownika są w %localappdata%. Więc, żeby uruchomić Chrome trzeba dać:

“%localappdata%\Google\Chrome\Application\chrome.exe”