Proste menu wyboru w Batchu
Dla wszystkich, którzy jeszcze nie przesiedli się z Wiersza Poleceń na Powershell (a śmiem stwierdzić że 100% zamiana CMD na PS pewnie nigdy nie dojdzie do skutku) mam kolejna prostą, acz przydatną sztuczkę. Jeżeli mamy w swoim zestawie garść plików wsadowych, lub uruchamiamy często te same sekwencje poleceń, być może warto ułatwić sobie nieco prace i zbudować Plik Wsadowy, który nas zapyta o to, co checmy wykonać, wykona to i zapyta ponownie. Ot menu wyboru które, zbliży nas o krok do pracy w GUI 🙂
Oto treść przykładowego pliku bat z menu wielokrotnego wyboru:
:poczatek
cls
echo ———————————————–
echo Wybierz z listy
echo ———————————————–
echo.
echo 1) Kasowanie starych profili
echo 2) Kasowanie plikow tymczasowych
echo 3) Defragmentacja
echo 4) KONIEC
echo.
set /p opcja=wybierz:
if %opcja%==1 goto opcja1
if %opcja%==2 goto opcja2
if %opcja%==3 goto opcja3
if %opcja%==4 exit
goto zly_wybor
:opcja1
cls
echo wybrano Kasowanie starych profili
pause
goto poczatek
:opcja2
cls
echo wybrano Kasowanie plikow tymczasowych
pause
goto poczatek
:opcja3
cls
echo wybrano Defragmentacje
pause
goto poczatek
:zly_wybor
echo OPCJA NIE ZNANA.. WYBIERZ PONOWNIE!
pause
goto poczatek
Mam w zwyczaju zapętlać swoje niektóre skrypty, aby wyjście z nich było na moje własne życzenie. Odpowiada za to fragment „if %opcja%==4 exit”.
Lubię też uodpornić skrypt na pomyłki lub próby kombinowania, dlatego, gdy ktoś wybierze opcje spoza listy, skrypt poprosi o poprawny wybór.
Postaram się za jakiś czas podzielić podobnym rozwiązaniem w PowerShellu, zatem zapraszam do odwiedzania naszego bloga jak najczęściej 🙂
Używam choice i jest spoko.
Kiedy tworzę plik wsadowy z menu, to na XP czy Win7 działa poprawnie, ale już na WIn98 nie :/
Co może być tego przyczyną ? Jest to dla mnie ważne, gdyż muszę zrobić takie menu pod Win98…
Możesz spróbować zewnętrznych programów do generowania menu. Używałem kiedyś WBAT w jakimś przedpotopowym projekcie i całkiem dobrze się spisywał. Pozwala na zrobienie bardziej zaawansowanych opcji i obsługuje mysz. Dostępny jest tu: http://www.horstmuc.de/ui.htm
Użyłem komendy choice i teraz działa poprawnie 🙂
Program fajny i przyjemny. Dziękuję 🙂
kiedy tworze plik,włączam go i wyłącza mi się on po ułamku sekundy! co robić?
dodales 'pause’?
Spróbuj wywołać liska tak:
start „C:Program FilesMozilla Firefoxfirefox.exe”
Niestety nie działa, pojawiło się okno cmd – tytuł okna to właśnie ścieżka którą podałeś a w treści okna pojawiła się zwykła linijka tak jakbym wywołał cmd normlanie
No to tak:
start „” „C:Program FilesMozilla Firefoxfirefox.exe”
Nic z tego, zauważyłem ponadto, że Firefox jest w start „” „C:Pliki programów (x86)Mozilla Firefoxfirefox.exe”
Pojawia się komunikat: System Windows nie może odnaleźć pliku „C:Pkiki program^w (x86)Mozilla Firefoxfirefox.exe. Upewnij się, że nazwa jest poprawna i spróbuj ponownie.
Kurcze, przecież jest raczej poprawna… ;(
Jest dla Ciebie, nie dla cmd 😉
ostatnia próba:
start „” „%ProgramFiles(x86)%Mozilla Firefoxfirefox.exe”
Mistrz! Dzięki, teraz kombinuje jak uruchomić kilka programów, np. thunderbird wpisałem: start „” „%ProgramFiles(x86)%Mozilla Firefoxfirefox.exe”;”” „%ProgramFiles(x86)%Mozilla Thunderbirdthunderbird.exe” ale póki co nie działa…
na raz oczywiście bez polecenia wyboru…
:opcja1
cls
start „” „%ProgramFiles(x86)%Mozilla Firefoxfirefox.exe”
start „” „%ProgramFiles(x86)%Mozilla Thunderbirdthunderbird.exe”
pause
Normalnie MASTER z Ciebie…:))) dzięki 🙂 zabieram się za robienie plików wsadowych do plików i programów które często otwieram i już nie będę musiał grzebać w oknach. Dzięki