Skocz do zawartości

Programy w BAT


Rekomendowane odpowiedzi

Witam smile.gif
Mam pytanko:
Jestem młody informatykiem, i narazie tworzę programy w języku DOS-owym BAT.
I chciałbym żeby program "niby" się ładował i po kilku sekundach od włączenia programiku
było by okno powitalne, a przed tym oknem np.
Ładowanie
|+2 sek.| itd.

Kolega (kujon) mówił o jakimś CHOICE ( blink.gif ) lecz nie ogarniam co to jest.
Wytłumaczy mi ktoś, lub napisze taki skrypcik .? smile.gif

Odnośnik do komentarza
Pomoc jest darmowa, ale proszę rozważ przekazanie dotacji na utrzymanie serwisu: klik.

Hmm...
Choice to komenda na zasadzie switch - case z C++.
http://cpp0x.pl/kursy/Kurs-C++/Podstawy/Warunek-wielokrotnego-wyboru-switch-case/17
Działania są podejmowane na podstawie wpisanego znaku (znaków) przez usera.
Trudno mi to wytłumaczyć bardziej opisowo, polecam zapoznanie się z dokumentacją TechNet:
http://technet.microsoft.com/en-us/library/cc732504%28WS.10%29.aspx

...albo pomocą z CMD:

CHOICE [/C wybory] [/N] [/CS] [/T limit_czasu /D wybór] [/M tekst]

Opis:
To narzędzie umożliwia użytkownikowi wybranie jednego elementu z listy
wyborów i zwraca indeks zaznaczonego elementu.

Lista parametrów:
/C wybory Określa listę wyboru do utworzenia.
Domyślna lista to "TN".

/N Umieszcza listę wyboru w monicie.
Komunikat jest wyświetlany przed monitem
i wybory są nadal włączone.

/CS Umożliwia zaznaczanie wyborów uwzględniających wielkość
liter.
Domyślnie narzędzie nie uwzględnia wielkości liter.

/T limit czasu Liczba sekund, po upływie których zostanie dokonany
domyślny wybór. Akceptowane są wartości z zakresu od 0 do

9999. Jeżeli wprowadzisz cyfrę 0, domyślny wybór
zostanie dokonany natychmiast.

/D wybór Określa wybór domyślny po upływie nnnn s. Znak musi
znajdować się w zestawie wyborów określonych przy użyciu
opcji /C. Wartość nnnn musi być określona parametrem /T.

/M tekst Określa tekst komunikatu wyświetlanego przed
monitem. Jeżeli tekst nie zostanie określony, narzędzie
wyświetli tylko monit.

/? Wyświetla ten komunikat pomocy.

UWAGA:
Zmienna środowiskowa ERRORLEVEL jest ustawiona na indeks klucza
wybranego z zestawu wyborów. Pierwszy wybór na liście
zwraca wartość 1, drugi wartość 2 itd.
Jeżeli użytkownik naciśnie klawisz nieodpowiadający prawidłowemu wyborowi,
narzędzie wyemituje sygnał ostrzegawczy. Jeżeli narzędzie wykryje błąd,
zostanie zwrócona wartość ERRORLEVEL wynosząca 255. Jeżeli użytkownik
naciśnie klawisze CTRL+BREAK lub CTRL+C, narzędzie zwróci wartość
ERRORLEVEL wynoszącą 0. Jeżeli parametry zmiennej środowiskowej ERRORLEVEL
są używane w programie wsadowym, wyświetli je w kolejności malejącej.

Przykłady:
CHOICE /?
CHOICE /C TNA /M "Naciśnij T dla Tak, N dla Nie lub A dla Anuluj."
CHOICE /T 10 /C tna /CS /D t
CHOICE /C ab /M "Wybierz literę a dla opcji 1 oraz literę b dla opcji 2."
CHOICE /C ab /N /M "Wybierz literę a dla opcji 1 oraz literę b dla opcji 2."



Co do zatrzymywania wykonywania skryptu:

Wewnętrzne rozwiązanie (tylko w systemach Windows Vista/7) to waitfor:

Istnieją dwa sposoby korzystania z parametru WaitFor:

Składnia 1: aby wysłać sygnał
WAITFOR [/s system [/u użytkownik [/P [hasło]]]] /SI sygnał

Składnia 2: aby czekać na sygnał.
WAITFOR [/T limit_czasu] sygnał

Opis:
To narzędzie wysyła lub czeka na sygnał. Jeżeli opcja /S nie jest
określona, sygnał zostanie wyemitowany do wszystkich systemów
w domenie. Jeżeli opcja /S jest określona, sygnał zostanie wysłany
tylko do określonego systemu.

Lista parametrów:
/S system Określa system zdalny do wysłania sygnału.

/U [domena\]użytkownik Określa kontekst użytkownika, w którym
polecenie powinno być wykonane.

/P [hasło] Określa hasło dla podanego kontekstu użytkownika.

/SI Wysyła sygnał w sieci do oczekujących komputerów.

/T limit czasu Czas oczekiwania (w sekundach) na sygnał.
Prawidłowy zakres to 1-99999. Domyślnie komputery
zawsze czekają na sygnał.

sygnał Nazwa oczekiwanego lub wysyłanego sygnału.

/? Wyświetla ten komunikat pomocy.

UWAGA: System może czekać na wiele unikatowych nazw sygnałów.
Nazwa sygnału nie może być dłuższa niż 225 znaków i nie może
zawierać znaków innych niż a-z, A-Z, 0-9 oraz znaków ASCII
z zakresu 128-255.

Przykłady:
WAITFOR /?
WAITFOR SetupReady
WAITFOR CopyDone /T 100
WAITFOR /SI SetupReady
WAITFOR /S system /U użytkownik /P hasło /SI CopyDone

Dla CMD:

Sleep
http://www.sleepcmd.com/

Delay
http://users.csc.calpoly.edu/~bfriesen/software/console.shtml

PauseWithTimeout
http://www.cryer.co.uk/downloads/pausewithtimeout/

Dla PowerShella:

Pause
http://blogs.msdn.com/powershell/archive/2007/02/25/pause.aspx

Pause-Script & Out-More
http://poshcode.org/613

Pause until then
http://poshstudent.wordpress.com/2009/04/22/pause-until-then/

Natomiast osobiście wolę pisać wszystko w C++ i potem po prostu odwoływać się do WinAPI jeśli zachodzi taka potrzeba.

Odnośnik do komentarza
  • 3 tygodnie później...

Witaj

tu tak na szybko przykład ładowania ... dostosujesz do własnych potrzeb do tego przykład zastosowania polecenia choice

@ECHO OFF

:TAK
CLS
COLOR 2a
echo TRWA LADOWANIE ...
echo ÍÍÍÍÍÍ
sleep 1
CLS
echo TRWA LADOWANIE ...
echo ÍÍÍÍÍÍÍÍÍÍÍÍ
sleep 1
CLS
echo TRWA LADOWANIE ...
echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
sleep 1
CLS
echo TRWA LADOWANIE ...
echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
sleep 1
CLS



echo.
echo POWTORZYC LADOWANIE ?
echo.
choice /C:TN
if ERRORLEVEL 2 goto NIE
if ERRORLEVEL 1 goto TAK

:NIE
ECHO.
ECHO KONIEC
ECHO.
pause
Odnośnik do komentarza

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...