Choice: Proste menu w batch ? – Nic trudnego :-)

Chciałbym przedstawić jak używać instrukcji choice do stworzenia prostego menu.
Przy okazji opiszę kilka innych komend. O co chodzi w menu ?
Wybieramy interesującą nas liczbe/litere [ w menu ]
Po wcisnięciu nasz program wykonuje zadane mu polecenie.

Na początek trzeba przemyśleć sprawe, jak ma wyglądać menu, i z ilu opcji się składać.
Moje menu będzie zawierało 7 opcji :

1.Stwórz plik leave.txt
2.Zmień rozszerzenie pliku leave.txt na leave.bak
3.Usuń plik leave.txt
4.Usuń plik leave.bak
5.Uruchom kalkulator
6.Czyść ekran
7.Zakończ

Trzeba zacząć od tego jak składa się instrukcja choice:
Choice /C:12345Q /N /T:Q,30
Choice /C: Odpowiedzi /Parametry
Jeśli dodamy do choice parametr N to odpowiedzi ( 12345Q) nie zostaną wyświetlone.
Parametr T przyjmuje że po 30 sekundach bezczynności zostanie wybrana odpowiedź domyślna,
czyli Q.

Do zrobienia menu potrzebna będzie nam jeszcze instrukcja warunkowa:

if errorlevel kod_wyjscia komenda

Jak jej używamy pokaże na przykładzie.

Przejdźmy teraz do samej akcji, czyli menu 🙂

Kod źródłowy:

@echo off

:START
cls
echo ------------------------
echo ------------------------
echo [ 1 ].Stworz plik leave.txt
echo [ 2 ].Zmien rozszerzenie pliku leave.txt na leave.bak
echo [ 3 ].Skasuj plik leave.txt
echo [ 4 ].Skasuj plik leave.bak
echo [ 5 ].Uruchom Kalkulator
echo [ 6 ].Czysc ekran
echo [ 7 ].Zakoncz
echo --------------------------
echo --------------------------
CHOICE /C:1234567 /N

IF ERRORLEVEL 7 GOTO Zakoncz
IF ERRORLEVEL 6 GOTO Czysc
IF ERRORLEVEL 5 GOTO Kalkulator
IF ERRORLEVEL 4 GOTO KASUJ2
IF ERRORLEVEL 3 GOTO KASUJ
IF ERRORLEVEL 2 GOTO ZMIANA
ECHO Tworze plik leave.txt / Nacisnij ctrl+z
COPY CON LEAVE.TXT
If exist leave.txt echo Plik utworzono
if not exist leave.txt echo Blad! Nie utworzono pliku.
pause
GOTO START

:ZMIANA

if not exist leave.txt echo Brakuj pliku leave.txt - Operacja przerwana!
if exist leave.txt goto Zmiana2
pause
GOTO START
:Zmiana2
xcopy leave.txt leave.bak
if exist leave.bak echo Plik leave.txt > leave.bak utworzono! - Operacja wykonana poprawnie.
if not exist leave.bak echo Blad!
pause
GOTO START

:Kasuj
if not exist leave.txt echo Brak pliku! Blad!
if exist leave.txt goto Kasowanie
pause
GOTO START
:Kasowanie
del leave.txt
if not exist leave.txt echo Skasowano!
pause
GOTO START

:Kasuj2
if not exist leave.bak echo Brak pliku! Blad!
if exist leave.bak goto Kasowanie2
pause
GOTO START
:Kasowanie2
del leave.bak
if not exist leave.bak echo Skasowano!
pause
GOTO START

:Kalkulator
echo Uruchamiam kalkulator..
calc
GOTO START

:Czysc
cls
echo Ekran wyczyszczono!
pause
GOTO START

:Zakoncz
exit

Uwaga!
Instrukcja CHOICE nie będzie nam działać jeśli posiadamy system Windows Xp (wzwyż)
Została ona usunięta, ale jest na to rada 😉 Należy do katalogu Windows wgrać plik choice.com
Plik choice.com można również skopiować z systemu Windows 98.

Aby stworzyć naszego *.bat musimy kod źródłowy wkleić do notatnika następnia z menu wybrać zapisz jako,
i wpisać nazwa_pliku.bat, wybrać ponizej „wszystkie pliki”.Następnie wybrać lokalizacje, i zapisać plik.

Moje menu po poprawnym utworzeniu wygląda tak :

Powodzenia 🙂

Dodaj komentarz