call choice
Transkrypt
call choice
Pliki *.BAT (programy *.BAT) zawieraja polecenia DOSa. Gdy wywolamy nazwe takiego pliku, DOS przeczyta i wykona umieszczone w pliku polecenia - po kolei, ale za jednym zamachem. Pliki wsadowe maja nazwy z rozszerzeniem BAT, tak jak slynny AUTOEXEC.BAT, ktory jest wykonywany po kazdym wlaczeniu komputera. Do pisania plikow *.BAT dobrze nadaje sie DOSEDITOR (w ktorym to powstaje tez ta strona), wywolywany poleceniem EDIT. We wczesniejszych wersjach DOSa odstraszal edytor wierszowy EDLIN. Kazde polecenie musi byc zapisane w osobnym wierszu pliku, w kolejnosci takiej, w jakiej chcemy, a by zostalo wykonane. Jezeli zamiast DOSEDITORa uzywamy jakiegos prostego edytora tekstow musimy pamietac, aby plik zapisac jako zwykly tekst, inaczej nie ebda dzialac. W programach *.BAT mozemy uzywac dowolnych polecen DOSa, a oprocz tego mamy jeszcze kilka slowek na specjalna okazje (jak IF,GOTO,CALL). Szczegoly zagadnienia "Programowanie wsadowe" postanowilem zostawic podrecznikom i stronom temu poswieconym. Na razie pokaze tylko ogolny zarys plikow *.BAT. Uwazam, iz sa one dosc ciekawym aspektem DOSa. @ W pliku znak @ umieszczony przed poleceniem zapobiega wyswietlaniu echa polecenia. Zwykle korzystamy z niego ze wzgledow estetycznych. PARAMETRY @(polecenie) CALL Z jednego pliku *.BAT przenosi nas do drugiego. Gdy DOS wykona polecenia umieszczone w jednym pliku *.BAT, wykonywane sa polecenia nastepujace po CALL. PARAMETRY CALL (sciezka pliku, enpe c:\gry\mojbat.bat CHOICE Tylko DOS 6. Pozwala na dokonywanie wyboru w programie *.BAT zawierajacym kilka wariantow dzialania. PARAMETRY CHOICE /c [:]klawisze okresla litery klawiszy wybierajacych poszczegolne warianty. Wymienione litery klawiszy pojawiaja sie w nawiasie kwadratowym[], oddzielone przecinkami, ze znakiem zapytania na koncu. Pominiecie tgeo parametru powoduje wyswietlenie standardowego [Y,N]? To, ktory klawisz nacisnales, zostaje przekazane do DOSa w kodzie powrotu CHOICE. I tak np. po poleceniu CHOICE / ctn nacisniecie klawisza [T] nadaje zmiennej ERRORLEVEL wartosc 1, a klawisza [N] wartosc 2. Wartosc ERRORLEVEL jest nastepnie badana poleceniem IF. CHOICE /n powoduje, ze zostaje wyswietlony napisany przez ciebie tekst. CHOICE /s czyni CHOICE wrazliwym na duze i male litery. CHOICE /t[:]c,nn okresla klawisz c (jeden z wymienionych w opcji /c), ktory zostanie automatycznie wybrany, o ile w czasie nn (od 1 d0 99 sekund) nie dokonasz wyboru. ECHO Wyswietla tresc komunikatu albo decyduje o tym, czy DOS ma wyswietlac echo polcenia. PARAMETRY ECHO(komunikat) tresc, ktora chcesz, zeby ukazala sie na ekranie. ECHO ON wlacza wyswietlanie cha polecen. ECHO OFF wylacza wyswietlanie echa polecen. FOR Wykonuje okreslone polecenie DOSa dla kazdego elementu serii plikow lub ciagow znakow. Polecenie mozna podac rownioez z linii komend, wtedy zamiast %% piszesz %. PARAMETRY FOR %%zmienna IN (seria) DO polecenie [parametry] %%zmienna nazwa zmiennej, ktora bedzie kolejno zastepowana nazwa pliku lub ciagu znakow z serii. Moze to byc litera od A do Z, mala lub duza (FOR jest wrazliwa na wielkosc liter) i pozostale znaki, z wyjatkiem cyfr 0-9. (seria) koniecznie w nawiasach! Okresla jeden lub kilka plikow badz ciagow znakow, ktore ebda przetwarzane przez okreslone polecenie. Elementy serii odzielasz spacjami. W nazwach plikow mozna uzywac jokerow *i? polecenie nazwa polecenia, ktore bedzie przetwarzalo kazdy z elementow serii. parametry okresla parametry lub opcje polecenia, wsrod nich %%zmienna. GOTO Skok do wiersza pliku *.BAT okreslonego wymieniona etykieta. Uzycie polecenia GOTO ma sens w polaczeniu z uzyciem polcenia IF, pozwalajacego na warunkowe wykonywanie pewnych framgmentow programu *.BAT. PARAMETRY GOTO etykieta gdzie etykieta okresla, dokad przeniesie sie akcja programu. Gdy nadajesz wierszowi etykiete, musisz poprzedzic ja dwukropkiem. IF Umozliwia warunkowe wykonanie polecenia, jezeli warunek po IF jest seplniony. Jezeli nie, to polecenie jest ignorowane. PARAMETRY IF [not] errorlevel x polecenie IF [not] ciag_znakow1==ciag_znakow2 polecenie IF [not] exist nazwa_pliku polecenie not znaczy nie [not] errorlevel X wartosc errorlevel to kod powrotu, ktory programy pozostawiaja DOSowi po zakonczeniu swojego dzialania. Polecenie IF odczytuje te wartosc i jezeli (nie) jest ona wieksza lub rowna X, polecenie ejst wykonywane. [not] ciag_znakow1==ciag_znakow2 jezeli ciag_znakow1 (nie) jest taki sam, jak ciag_znakow2, to polecenie jest wykonywane. [not] exist nazwa_pliku jezeli (nie) istnieje plik o podanej nazwie, to polecenie jest wykonywane. polecenie okresla polecenie, ktore jest wykonywane w razie spelnienia warunku. PAUSE Wstrzymuje wykonanie programu *.BAT do momentu, kiedy nacisniesz dowolny klawisz. Dodatkowo moze wyswietlac w czasie pauzy ulozony przez ciebie komunikat. PARAMETRY PAUSE (tekst) gdzie tekst, to ulozony przez ciebie komunikat, ktory ma byc wyswietlany na ekranie, gdy sytem czeka na nacisniecie przez ciebie klawisza. UWAGA!!! Taki komunikat bedzie wyswietlony tylko przy wlaczonym ECHO. Jesli wprowadzisz PAUSE bez parametru tekstu, DOS wyswietli swoj standardowy komunikat PRESS ANY KEY TO CONTINUE. Standardowy komunikat pojawia sie takze przy wylaczonym echo. REM Wiersz w programie *.BAT zaczynajacy sie od REM moze zawierac dowolna tresc. DOSa taki wiersz nie interesuje. Najczesciej po REM umieszcza sie komentarz ulatwiajacy zrozumienie dzialania programu *.BAT. Jest to rowniez latwa metoda wylaczania okreslonego polecenia w pliku CONFIG.SYS badz AUTOEXEC.BAT. PARAMETRY REM (tekst) gdzie tekst to tresc komentarza polecenia, ktore ma byc wylaczone z programu. SHIFT Parametry, z ktorymi wywolujesz program *.BAT, sa przedstawione w tekscie pliku jako %1, %2 ... %9 (%0 to nazwa samego pliku *.BAT). W czasie wykonywania programu tajemnicze %n zastepowane sa przez rzeczywiste parametry, ktore zostaly wpisane za nazwa programu w linii komend. Pewnym ograniczeniem jest to, ze masz 10 zmiennych od %0 do %9. Czasem chcialbys, zeby program mogl korzystac z wiekszej liczby parametrow. Do tego wlasnie sluzy polecenie SHIFT. SHIFT przesuwa parametry linii komend wyrazone jako %n, tak ze parametr, ktory do czasu uzycia SHIFT przedstawiony byl jako %1, teraz staje sie %0, %2 staje sie %1 itd. Po kazdym uzyciu SHIFT , %0 jest wyrzucane, robi sie za to miejsce dla czekajacego parametru. PARAMETRY SHIFT tylko tyle. Przedstawiam plik AUTOEXEC.BAT z mojego komputera z zainstalowanym sterownikiem CDROMU, karty dzwiekowej oraz driverem VESA. SET BLASTER=A220 I5 D1 T4 SET SOUND16=C:\OPTI930 C:\OPTI930\sndinit /b @echo off PATH C:\FREEDOS ;D:\WORD ;D:\SC ;D:\AUDIO\SJGPL ;D:\NES\NESTICLE set temp=C:\Freedos REM ** SET BLASTER=A220 I10 D1 H5 P330 PROMPT $t$_$p$g C:\CDPRO\MSCDEX.EXE /D:TEAC-CDI /M:15 PATH %PATH%;C:\OPTI930 C:\UVESA\UNIVESA CLS