|
Pliki wsadowe
Obecnie niewiele osób wie (szczególnie pokolenie
Windows), o możliwościach programowania, które stwarzają pliki
typu *.bat, czyli pliki wsadowe.
Można w nich pisać sekwencje poleceń DOS, oraz wykonywać instrukcje
niemożliwe do wywołania w trybie bezpośrednim.
Najbardziej znanym plikiem *.bat jest autoexec.bat. Wykonuje
on ciąg kolejnych poleceń, przygotowując system do pracy, zanim
jeszcze uruchomi się środowisko Windows.
Jednymi z podstawowych instrukcji plików wsadowych, są instrukcje
ECHO OFF i ECHO ON. Służą one do kolejno wyłączania i włączania
wyświetlania poleceń DOS na ekranie. Instrukcja ECHO OFF spowoduje,
że w całym programie poniżej polecenia nie będzie wyświetlane
,,echo" komend. Natomiast jeśli chcemy, by tak się stało
z pojedynczą komendą, stawiamy przed nią małpę (@).
I tak np.: w wyniku uruchomienia pliku *.bat o następującej
zawartości:
@ECHO ON
COPY AUTOEXEC.BAT AUTOEXEC.BAK
na ekranie pojawi się coś takiego:
C:\>copy autoexec.bat autoexec.bak
Plików skopiowanych: 1
Natomiast jeśli napiszemy w pliku:
@ECHO OFF
COPY AUTOEXEC.BAT AUTOEXEC.BAK
to ujrzymy:
Plików skopiowanych: 1
Dokładnie tak samo by się stało gdybyśmy napisali:
@COPY AUTOEXEC.BAT AUTOEXEC.BAK
I jeszcze jedna uwaga, napisałem '@' przed ECHO OFF, ponieważ
komenda odnosi się do linijek poniżej bieżącej, więc ta komenda
pojawiłaby się na ekranie.
Linijki tekstu można wypisywać na ekran pisząc po komendzie
ECHO treść tekstu, np.:
ECHO Witaj kolego
Żeby komputer poczekał na przeczytanie przez użytkownika komunikatu
można zastosować komendę PAUSE. Wtedy program zatrzyma się,
i ,,pójdzie'' dalej po naciśnięciu dowolnego klawisza.
Komenda REM służy do pisania komentarzy, napisanie po niej czegokolwiek
nie ma wpływu na działanie programu.
Bardzo ciekawą możliwością plików wsadowych, jest stosowanie
parametrów.
Np. jeśli napiszemy bacik kasujący plik, to nie musi to być
konkretny plik, ale wybrany przez użytkownik stosownie do potrzeby.
Piszemy więc plik usun.bat o następującej treści:
@ECHO OFF
ECHO Zaraz coś Ci usunę
PAUSE
DELETE %1
Następnie wywołujemy np. komendę usun autoexec.bak, i żegnaj
pliku...
Przydatne i często stosowane w plikach wsadowych jest przetwarzanie
potokowe. Używa się go do wysyłania efektów danego polecenia
zamiast na ekran, do pliku.
Jeżeli napiszemy komendę:
COPY AUTOEXEC.BAT AUTOEXEC.BAK > kopia.log
to zostanie utworzony plik kopia.log o treści:
Plików skopiowanych: 1
Ogromne pole do popisu dają instrukcje warunkowe. Są ich trzy
rodzaje
IF ciąg1==ciąg2 polecenie - równość dwóch łańcuchów
IF EXIST nazwapliku polecenie - jeśli istnieje plik
IF ERRORLEVEL numer polecenie - poziom błędy
Bardzo przydatna jest instrukcja skoku go etykiety GOTO etykieta.
Oto przykład jej zastosowania:
@ECHO OFF
IF '%1'=='/?' GOTO Pomoc
IF '%1'=='/u' GOTO Usun
GOTO End
:Pomoc
ECHO Program usuwa pliki tekstowe
GOTO End
:usun
DELETE *.TXT
:END
:IDENTYFIKATOR to oznaczenie etykiety.
Stosuje się też pętle, wygląda ona tak:
FOR Zmienna IN (Grupa_plików) DO polecenie
Zmienne oznacza się dwoma znakami% i literą się
np.
FOR %%A IN (*.exe *.com *.bat) DO DIR %%A /B
Powyższa instrukcja spowoduje wyświetlenie na ekranie plików
*.exe *.com *.bat.
Pliki wsadowe dają ogromne możliwości, można spotkać nawet
profesjonalne programy *.BAT. Nie są one już tak popularne jak
za panowania DOS'a, ale nadal przydają się.
wnas
wnas@o2.pl
http://www.wnas.prv.pl
|