Rozdzia 2
System WINDOWS XP – podstawowe polecenia DOS
Pracownia systemów komputerowych – Piotr Cymerman
23
2.2.1 Pliki wsadowe
Plik wsadowy (
batch file
) umo liwia wykonanie dowolnego ci gu polece systemu
MS-DOS
. Za jego pomoc mo na w prosty sposób zautomatyzowa najcz ciej wykonywane
czynno ci, takie jak kopiowanie, kasowanie, tworzenie pliku lub folderu, a wi c
przetwarzanie tekstu lub powtarzaj ce si zadania administratora systemu. Z punktu widzenia
systemu operacyjnego plikiem wsadowym jest ka dy plik, którego nazwa posiada
rozszerzenie
bat
.
Po wydaniu dowolnego polecenia interpreter polece
command.com
sprawdza
w pierwszej kolejno ci czy wydana komenda jest poleceniem wewn trznym
(interpretowanym przez
command.com
) lub zewn trznym i w przypadku odpowiedzi
pozytywnej wykonuje wydan komend . Je eli jednak interpreter nie rozpoznaje polecenia
to przyjmuje, e u ytkownik za da uruchomienia programu lub pliku wsadowego.
Programy wsadowe na ogó nie wymagaj interfejsu graficznego, cz sto uruchamiane
w trybie tekstowym, czyli z wiersza polece . W systemie Windows mog by tak e
uruchamiane z wiersza polece zredukowanego do okna Uruchom w menu Start,
lub eksploratora Windows przez uruchomienie pliku.
Podstawowe komendy i ich zastosowanie
W plikach wsadowych mog by u ywane wszystkie polecenia, które dzia aj
w wierszu polece . Dodatkowo w plikach tych spotyka si równie pewne komendy
specyficzne dla plików wsadowych, takie jak:
ECHO
tekst
– wy wietli na ekranie napis
tekst
ECHO OFF
– polecenia nie b
pokazywane, a jedynie wyniki ich dzia ania (je li
polecenie poprzedzimy znakiem
@
to równie bie ce polecenie nie
zostanie wy wietlone
ECHO ON
– w cza tryb wy wietlania komend
REM
– za tym poleceniem mo na wstawia tekst komentarza
PAUSE
– zatrzymywanie dzia ania programu do czasu naci ni cia dowolnego klawisza
CALL
– polecenie do wywo ywania innego pliku wsadowego
GOTO
– polecenie skoku do etykiety oznaczonej przez postawienie znaku „:”, np.
GOTO
koniec
EXIST
– polecenie sprawdza, czy w podanej cie ce znajduje si nazwa pliku wpisana
jako argument wyszukiwania
IF
– instrukcja warunkowa „je eli” – je eli warunek jest prawdziwy to wykonaj
instrukcje, np.
IF EXIST
c:\nazwa.bat
GOTO
koniec
(
je eli istnieje
plik
c:\nazwa.bat
to
skocz
do etykiety
koniec
)
SHIFT
– polecenie zmienia warto parametru pliku wsadowego
FOR
– p tla (instrukcja iteracyjna) s
y do wielokrotnego wykonywania podobnych
czynno ci
wiczenie 1. Pierwszy plik wsadowy
Napisz w notatniku poni szy fragment i zapisz w folderze
E:\TEMP
z nazw
1.bat
(je li
TEMP
nie istnieje to go utwórz z konsoli komend
cmd
), a nast pnie uruchom go
z eksploratora Windows lub z konsoli komend.
REM To jest komentarz - nie bedzie widoczny i wykonywany :)
ECHO To moj pierwszy plik wsadowy
PAUSE
ród o 1. Wersja pierwotna pliku 1. bat
Rozdzia 2
System WINDOWS XP – podstawowe polecenia DOS
Pracownia systemów komputerowych – Piotr Cymerman
24
Efekt dzia ania pliku
1.bat
:
Rys. 2.2.21. Wynik dzia ania pliku wsadowego 1.bat
W pliku
1.bat
dopisz polecenie
ECHO OFF
i zapisz plik - po ponownym uruchomieniu pliku
wsadowego
1.bat
efekt b dzie nast puj cy:
Rys. 2.2.22. Po dopisaniu w pierwszej linii polecenia ECHO OFF
Teraz dopisz symbol
@
przed dopisanym poleceniem
ECHO OFF
, zapisz plik i porównaj efekt
dzia ania:
Rys. 2.2.23. Po dopisaniu symbolu @ przed poleceniem ECHO OFF
Jakie wnioski wyci gniesz?
wiczenie 2. Tworzenie folderów, instrukcja warunkowa, instrukcja skoku
Napisz plik wsadowy
2.bat
, który b dzie tworzy folder
PIERWSZY
w folderze
E:\TEMP
. U yj w pliku polece wewn trznych
MD
(do tworzenia folderów), a tak e
CD
do
ustawienia folderu bie cego na
E:\TEMP\PIERWSZY
. Na pocz tku zastosuj równie
polecenie
CLS
, aby wyczy ci ekran – dzia anie pliku nie powinno wy wietla instrukcji,
a jedynie ich efekt (
@ECHO OFF
).
@ECHO OFF
REM Drugi plik wsadowy - tworzenie folderu
CLS
MD E:\TEMP\PIERWSZY
ECHO Utworzono folder E:\TEMP\PIERWSZY
ECHO Ustawiam folder biezacy na E:\TEMP\PIERWSZY
E:
CD E:\TEMP\PIERWSZY
PAUSE
ród o 2. Zawarto pliku 2.bat
Rozdzia 2
System WINDOWS XP – podstawowe polecenia DOS
Pracownia systemów komputerowych – Piotr Cymerman
25
Efekt dzia ania pliku
2.bat
:
Rys. 2.2.24. Okno konsoli po uruchomieniu pliku 2.bat
Uruchom go ponownie i zwró uwag na dodatkowy komunikat, który si tam znajdzie:
Rys. 2.2.25. Okno konsoli po ponownym uruchomieniu pliku 2.bat
Zmodyfikuj plik
2.bat
(i zapisz go z nazw
3.bat
) tak, aby w sytuacji, gdy istnieje folder
E:\TEMP\PIERWSZY
wy wietli jego zawarto , a gdy nie istnieje to ma utworzy
wspomniany folder. Musisz u
instrukcji warunkowej
IF EXIST
oraz oraz
IF NOT EXIST
,
a tak e tzw. etykiet (
:nazwa_etykiety
) i instrukcji skoku
GOTO
nazwa_etykiety
(patrz
Podstawowe komendy i ich zastosowanie – na pocz tku tego dokumentu).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@ECHO OFF
REM Trzeci plik wsadowy - na bazie pliku 2.bat
CLS
IF NOT EXIST E:\TEMP\PIERWSZY GOTO utworz
IF EXIST E:\TEMP\PIERWSZY GOTO blad
:blad
ECHO Folder o takiej nazwie juz istnieje!
ECHO Oto jego zawartosc
DIR E:\TEMP\PIERWSZY
GOTO koniec
:utworz
MD E:\TEMP\PIERWSZY
ECHO Utworzono folder E:\TEMP\PIERWSZY
GOTO koniec
:koniec
ECHO Ustawiam folder biezacy na E:\TEMP\PIERWSZY
E:
CD E:\TEMP\PIERWSZY
PAUSE
ród o 3. Zawarto pliku 3.bat
Jak to dzia a?
Zaczn od linii 4 , poniewa linie 1 2 3 nie wymagaj
adnych wyja nie
. A wi c
w linii 4 sprawdzane jest czy nie istnieje (
NOT EXIST
) folder
E:\TEMP\PIERWSZY
– je li to
prawda (nie istnieje folder
PIERWSZY
) to program przeskakuje do linii 11 (
GOTO
utworz
),
czyli do miejsca oznaczonego etykiet
utworz
. Poniewa w plikach wsadowych linie
wykonywane s kolejno (poza instrukcjami skoku
GOTO
) to wykonane zostanie polecenie
z linii 12 (utworzony zostaje folder), nast pnie w 13 wy wietlony zostanie napis i w kroku
kolejnym 14 znowu jest polecenie skoku – tym razem do etykiety
koniec
, czyli do linii 15 .
Je li przeanalizujesz dalsze kroki to dojdziesz do wniosku, e po wykonaniu polecenia
Rozdzia 2
System WINDOWS XP – podstawowe polecenia DOS
Pracownia systemów komputerowych – Piotr Cymerman
26
z linii 16 wy wietlony zostanie napis, nast pnie po wykonaniu polecenia z linii 17
zmieniony zostanie dysk bie cy na
E:
(nawet gdy ju by taki ustawiony), nast pnie nast pi
ustawienie folderu bie cego na
E:\TEMP\PIERWSZY
w linii 18 i na koniec wstrzymanie
dzia ania programu (linia 19 ).
Je li folder
PIERWSZY
nie istnieje to b dzie tak jak w powy szym opisie dzia ania (patrz
równie na rys. 2.2.27). A co b dzie jak w linii 4 oka e si , e folder istnieje? Nie zostanie
wykonana instrukcja skoku
GOTO
utworz
tylko wykonane zostanie polecenie z linii 5 , które
sprawdza czy istnieje (
EXIST
) folder
E:\TEMP\PIERWSZY
– je li to prawda to wykonane
zostanie polecenie skoku do linii 6 (
GOTO
blad
). Skoro taki skok nast pi to wykonane
zostanie nast pne polecenie z kolejnej linii 7 , czyli wy wietlenie komunikatu, dalej
polecenie z linii 8 – wy wietlenie nast pnego komunikatu, potem wy wietlenie zawarto ci
folderu
E:\TEMP\PIERWSZY
poleceniem z linii 9 i po tym wszystkim po wykonaniu
polecenia z linii 10 (skok do etykiety
koniec
linia 15 ) zostan wykonane kolejno
omawiane ju komendy 16 17 18 i 19 (wynik dzia ania jak na rys. 2.2.26).
Je li nie usun
folderu
PIERWSZY
to wynik dzia ania pliku
3.bat
jest nast puj cy:
Rys. 2.2.26. Okno konsoli po uruchomieniu pliku 3.bat
Teraz usu folder
PIERWSZY
- je li b dzie odmowa to zmie bie cy dysk na inny, np.
H:
i spróbuj usun jeszcze raz. Ponownie uruchom plik
3.bat
i zaobserwuj czy zachowa si tak
samo jak na rys. 2.2.27:
Rys. 2.2.27. Okno konsoli po ponownym uruchomieniu pliku 3.bat
Rozdzia 2
System WINDOWS XP – podstawowe polecenia DOS
Pracownia systemów komputerowych – Piotr Cymerman
27
Przyjrzyj si plikowi
3.bat
– czy nie b dzie optymalnie je li zmodyfikujesz go tak jak
w ródle 4? Efekt dzia ania b dzie identyczny – przeanalizuj ród o 4 (zapisz w pliku
4.bat
)
i wska ró nice mi dzy obydwoma plikami.
@ECHO OFF
REM Czwarty plik wsadowy - zoptymalizowany plik 3.bat
CLS
IF NOT EXIST E:\TEMP\PIERWSZY GOTO utworz
ECHO Folder o takiej nazwie juz istnieje!
ECHO Oto jego zawartosc
DIR E:\TEMP\PIERWSZY
GOTO koniec
:utworz
MD E:\TEMP\PIERWSZY
ECHO Utworzono folder E:\TEMP\PIERWSZY
:koniec
ECHO Ustawiam folder biezacy na E:\TEMP\PIERWSZY
E:
CD E:\TEMP\PIERWSZY
PAUSE
ród o 4. Zawarto pliku 4.bat – zoptymalizowany plik 3.bat
Zadanie 1. Tworzenie plików tekstowych
Napisz plik wsadowy
5.bat
, który b dzie umo liwia utworzenie i edycj pliku
tekstowego
test.txt
w folderze
E:\TEMP\PIERWSZY
. W kodzie powinny by
zaimplementowane zabezpieczenia przed nadpisaniem istniej cego pliku. Je li uruchomimy
plik za pierwszym razem to powinien utworzy plik
test.txt
(rys. 2.2.28). Po ponownym
uruchomieniu (plik powinien istnie po pierwszym uruchomieniu) nie mo emy nadpisa pliku
test.txt
– nale y wy wietli jego zawarto (rys. 2.2.29).
Rys. 2.2.28. Utworzenie pliku test.txt
Rys. 2.2.29. Wy wietlenie zawarto ci pliku test.txt (je li istnieje)