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  


Copyright 2001 by magazyn @t.Wszelkie prawa zastrzeżone.