Plik wsadowy - wyczyszczenie menu wyboru i wyświetlenie tekstu pożegnalnego

0
@echo off
 
set /p imie=Podaj swoje imie:
echo Witaj %imie%
PAUSE
 
:Start
cls
ECHO.
ECHO 1. Firefox
ECHO 2. Kalkulator
ECHO 3. Notatnik
ECHO 4. Pozegnanie
 
CHOICE /C:1234 /N 
 
IF ERRORLEVEL 4 GOTO Pozegnanie
 
IF ERRORLEVEL 3 GOTO Notatnik
 
IF ERRORLEVEL 2 GOTO Kalkulator
 
IF ERRORLEVEL 1 GOTO Firefox
 
 
:Firefox
 
ECHO Trwa uruchamianie...
 
C:\"Program Files (x86)"\"Mozilla Firefox"\firefox.exe
 
PAUSE
 
GOTO Start
 
:Kalkulator
 
ECHO Trwa uruchamianie...
 
C:\Windows\system32\calc.exe
 
PAUSE
 
GOTO Start
 
:Notatnik
 
ECHO Trwa uruchamianie...
 
C:\Windows\system32\notepad.exe
 
PAUSE
 
GOTO Start
 
 
: Pozegnanie
cls
ECHO Zegnaj %imie%
 
PAUSE

Na końcu muszę zrobić tak, że: gdy wcisnę '4' menu wyboru się wyczyści i będzie widniał napis 'Żegnaj %imie%' (wpisane na początku) a po 3 sekundach konsola sama się zamknie.
Jeśli ktoś ma jakieś pomysły to proszę pisać.

poprawienie tytułu wątku i dodanie znacznika <code class="winbatch"> - fp

1

Do wyczyszczenia konsoli służy cls. Do zamykania exit.
Do odczekania trzech sekund można użyć choice /N /C:YN /T:Y,3.
Minusem będzie wyświetlenie w tym przypadku "Y", ale wtedy możesz znowu użyć cls.
Natomiast wywoływanie exeków zrobił bym raczej z użyciem start. Poczytaj jak działa.

0
olesio napisał(a):

Do odczekania trzech sekund można użyć choice /N /C:YN /T:Y,1.

Nie za bardzo wiem o co w tym chodzi.. /T:Y,1
Dlaczego tam jest '1' a nie jakaś inna liczba?

0

Szukaj też sam coś - http://www.robvanderwoude.com/choice.php

0
veksan napisał(a):
olesio napisał(a):

Do odczekania trzech sekund można użyć choice /N /C:YN /T:Y,1.

Nie za bardzo wiem o co w tym chodzi.. /T:Y,1
Dlaczego tam jest '1' a nie jakaś inna liczba?

Ech. Pomyliłem się. A Ty też już sprawdzić nie mogłeś sam wywołując polecenie na przykład tak choice /?? Oczywiście, że ma tam być liczba sekund. Także miałem napisac jak napisałem na początku, czyli:

choice /N /C:YN /T:Y,3

Ale poprawiając literówki wkleiłem też nie to co trzeba kiedy robiłem testy czy jakoś moge pozbyć się pokazania odpowiedzi - klawisza na konsoli.

1

Do oczekiwania służy timeout
czeka 3 sekundy ale przerywa czekanie gdy user naciśnie dowolny klawisz:

timeout /t 3

czeka 3 sekundy (lub kombinację klawiszy ctrl+c):

timeout /t 3 /nobreak

EDIT:
A co do tego choice:

olesio napisał(a):

choice /N /C:YN /T:Y,3

To u mnie nie przejdzie pluje się że musi być parametr D określony i nieprawidłowo określony parametr czasu (czy coś takiego) ale łyka tak:

choice /N /C:YN /D:Y /T:3

a żeby było ładnie można to schować polecenie czyli jak zawsze @ a domyślny klawisz (Y) wysłać do nul:

@choice /N /C:YN /D:Y /T:3>nul
0

W win XP w DOSie nie ma komendy 'choice'. Czy można jakoś zupdatować ms-dos do nowszych wersji?

0

Po pierwsze kto teraz używa DOS? Po drugie od wersji 6.0 jest polecenie a właściwie jest to osobny programik (choice.exe lub choice.com) który jest wywoływany a wynik jego działania można odczytać jako ERRORLEVEL http://en.wikipedia.org/wiki/List_of_DOS_commands#CHOICE (składnia ma być jak napisał @olesio ) czyli

choice /N /C:YN /T:Y,3 > nul

Po trzecie podajesz kod w którym uruchamiasz programy pod Windows i teraz piszesz że chodzi o DOS?

0

Dzięki komenda 'timeout' pomogła. Zrobiłem to na virtualboxie gdzie mam win 7. Temat do zamknięcia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1