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