Batch Cwiczenia

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Tryb tekstowy systemu Ms Windows i podstawowe polecenia

Praca w trybie tekstowym (zwanym również trybem wiersza poleceń) polega na wpisywaniu
poleceń w wierszu poleceń i ich uruchamianiu. Uruchomienie polecenia następuje, gdy
naciśniemy klawisz <Enter>. Komendy mogą posiadać argumenty. Wśród argumentów
znajdują się takie, które rozpoczynamy od minusa, np. –d. Są to tzw. przełączniki, które
modyfikują standardowe działanie komendy. Większość poleceń ma swoje własne
przełączniki. Ta sama litera może mieć różne znaczenie w różnych komendach.

Podstawowe polecenia systemu DOS oraz trybu tekstowego MS Windows, które musisz
poznać:

a) help, /? g) rd, rd /s,


b) a: h) format
c) dir i) copy con, edit
d) cls j) del
e) cd k) copy
f) md l) prompt

Aby uruchomić tryb wiersza poleceń wystarczy w polu Uruchom (Start | Uruchom) wpisać
cmd. Można też w Programach wybrać Wiersz poleceń.

Zadanie 1 (podstawowe polecenia)


(a) Używając tylko poleceń md i cd utwórz w katalogu Moje dokumenty następującą
strukturę katalogów:

(b) Jeżeli utworzyłeś poprawnie powyższą strukturę, usuń ją i spróbuj utworzyć na nowo ale
używając tylko jednego polecenia md. (Do usuwania katalogów służy komenda rd /s
katalog).
(c) Przy pomocy edytora edit utwórz cztery pliki tekstowe o nazwach prog1.bat, prog2.bat,
list1.txt, list2.txt, list3.txt i zapisz je w katalogu DOC\2000. Do plików list1.txt, list2.txt i
list3.txt wpisz po kilka wierszy tekstu (używając edytora edit).
(d) Jedną komendą copy przekopiuj pliki prog1.bat i prog2.bat do katalogu BATCH (użyj
znaków specjalnych * lub ?).
(e) Jedną komendą copy przekopiuj pliki prog1.bat i list1.txt do katalogu UTIL (użyj
znaków specjalnych * lub ?: * oznacza dowolny ciąg znaków, ? oznacza dowolny
pojedynczy znak).
(f) Przejdź do katalogu 2000 i jedną komendą del usuń pliki prog1.bat i prog2.bat.
(g) Przejdź do katalogu PASCAL i jedną komendą usuń pliki list1.txt i list2.txt z katalogu
2000.

Strona - 1
Zadanie 2 (przełączanie wejścia-wyjścia)
Z każdym programem uruchomionym w trybie wiersza poleceń jest związane tzw.
standardowe wejście (input) i standardowe wyjście (output). Domyślnie standardowym
wejściem jest klawiatura a standardowym wyjściem monitor komputera. Jednakże
uruchamiając program możemy dokonać zmiany jego wejścia lub wyjścia.
Do przełączania wejść i wyjść używamy trzech symboli: <, >, >>. Znaczenie ich jest
następujące:
prog < file - dane wejściowe polecenia prog pobierane są z pliku file,
prog > file - dane wyjściowe polecenia prog są kierowane do pliku file,
prog >> file - dane wyjściowe polecenia prog są dołączane na koniec pliku file.

Aby lepiej zrozumieć sens powyższych symboli wykonaj podane polecenia i staraj się
zinterpretować wyniki. Pamiętaj, że polecenie type wysyła zawartość pliku podanego jako
argument do standardowego wyjścia. W praktyce oznacza to, że możemy wyświetlić
zawartość pliku ASCII na ekranie.

type list3.txt
type list3.txt > list3.bak
dir
dir > listing
type listing
dir .. >>listing
type listing
edit listing
Potok pozwala na połączenie w łańcuch dwóch lub więcej poleceń. Działanie potoku jest
takie, że wyjście jednego z nich jest używane jako wejście następnego. Znakiem służącym do
tworzenia potoku jest pionowa kreska|.
Na przykład, często dwa polecenia

prog1 > plik


prog2 < plik

można zapisać w formie

prog1 | prog2

W tym drugim przypadku nie jest potrzebny pomocniczy plik.


Filtr jest to program, który jest tak skonstruowany, że może korzystać z danych wyjściowych
innego programu w celu ich dalszego przetworzenia. W systemie DOS i trybie tekstowym MS
Windows dostępne są trzy standardowe filtry: more, find, sort.

Zadanie 3 (potoki i filtry)


Wykonaj poniższe polecenia i obserwuj wyniki.

cd \Documents and Settings


dir
dir | more
dir | sort

Strona - 2
dir | sort /+10
dir | sort /+10/R

Przeczytaj opis poleceń more i sort (użyj któregoś z poleceń: more /? lub help more)

Zadanie 4 (filtr FIND)


Przeczytaj opis polecenia find
W katalogu Doc\2000 utwórz pliki dane1.txt, dane2.txt. Każdy niech zawiera po co najmniej
10 linii tekstu (wiersze mogą być krótkie, jednowyrazowe). Niektóre linie niech zawierają
słowo „czwartek” albo „spotkanie” a inne oba te słowa naraz. Wejdź do katalogu Doc\2000 i
wykonaj poniższe polecenia i staraj się zrozumieć, co one robią:

find ”spotkanie” dane1.txt


find "spotkanie" *.txt
find ”spotkania” *.txt | find ”czwartek”
find ”spotkania” *.txt | find ”czwartek” | sort | more
dir C:..\..\.. | find ”<DIR>”
dir C:..\..\.. | find /V ”<DIR>”

Wykonaj dwa ostatnie polecenia używając ścieżki bezwzględnej zamiast względnej.


Jak wyświetlić wszystkie wiersze z pliku dane1.txt nie zawierające słowa czwartek?

Pliki wsadowe (skrypty powłoki)


Pliki wsadowe (ang. batch files) są to pliki tekstowe ASCII, zawierające ciągi poleceń trybu
tekstowego, które mogą być wykonane przez interpreter poleceń. Po uruchomieniu takiego
pliku kolejne polecenia w nim zawarte będą wykonywane. Tak więc jest to pewien rodzaj
programu. Pliki wsadowe są często wykorzystywane przez administratorów do automatyzacji
różnych zadań. Plik wsadowy musi mieć rozszerzenie BAT lub CMD.

W pliku wsadowym oprócz normalnych poleceń mogą wystąpić dodatkowe instrukcje


sterujące takie jak: call, shift, for, if, pause. Można również przekazywać parametry
do pliku wsadowego. W najnowszej generacji systemów Ms Windows zamiast nazwy plik
wsadowy (lub batch) używa się określenia skrypt powłoki (ang. shell script) lub po prostu
skrypt.
Tak więc podsumowując, należy stwierdzić, że interpreter poleceń (w Ms DOS to
command.com, w Ms Windows to cmd.exe) może pracować w dwóch różnych trybach: w
trybie interaktywnym (w którym użytkownik wpisuje komendy a interpreter je natychmiast
wykonuje) oraz w trybie wsadowym (batchowym) (w którym jest wykonywany ciąg
wcześniej zdefiniowanych poleceń zapisanych w pliku tekstowym). Koncepcje te pochodzą z
systemu operacyjnego Unix i zostały przeniesione do systemów CP/M, DOS i Ms Windows.

Zadanie 5 (pierwsze pliki wsadowe)


Utwórz plik tekstowy o treści jak poniżej i nazwij go echo1.bat. Zapisz go w katalogu Batch.
Pamiętaj, aby używać edytora, który generuje czysty tekst bez znaków formatujących (np.
Notatnik czy Edit). Obserwuj dokładnie wyniki i staraj się zrozumieć co się dzieje.

echo1.bat
echo Hello World!
echo How are you getting on?

Strona - 3
Aby uruchomić ten plik należy z katalogu, w którym został ten on zapisany wydać polecenie
np. jak poniżej:

C:\Krzysiek\Batch\>echo1.bat

Co się stanie gdy w powyższym przykładzie nazwę ECHO1.BAT zamienimy na ECHO.BAT?

echo2.bat
@echo off
echo Hello World!
echo on

mytype.bat
@type *.bat

Parametry pliku wsadowego


Plik wsadowy można uruchomić z podaniem parametrów. Wiersz polecenia może wyglądać
tak
C:\Programy\Batch\>szukaj.bat 23 ”Franek”

W tym przypadku plik wsadowy to szukaj.bat, a argumenty (parametry) to 23 i


”Franek”.
Jak można używać tych parametrów „wewnątrz” pliku wsadowego? Należy wiedzieć, że
parametry wiersza poleceń przekazane do pliku wsadowego są w nim oznaczane symbolami:
%0, %1, %2, ... , %9
Parametr %0 oznacza samą nazwę pliku wsadowego. Parametry %1, %2, ..., to kolejne
parametry, które wystąpiły w wierszu wywołania danego pliku wsadowego. Tak więc w
powyższym przykładzie mamy: %0=szukaj.bat, %1=23, %2=”Franek”.

Zadanie 6 (parametry pliku wsadowego)


Utwórz plik i uruchom plik wsadowy:

param1.bat
@echo off
echo Oto przekazane mi parametry
echo %0
echo %1
echo %2
Wywołaj go z różnymi parametrami:
C:\Batch\>param1.bat
C:\Batch\>param1.bat a
C:\Batch\>param1.bat a b c d e
C:\Batch\>param1.bat Ala ma kota. As to Ali pies

Zadanie 7
Utwórz plik wsadowy mkdir1.bat, który będzie tworzył w bieżącym katalogu trzy katalogi o
nazwach podanych jako parametry wiersza poleceń.
Wsk. Użyj poleceń takich jak md %1

Strona - 4
Zadanie 8
Utwórz plik wsadowy mkdir2.bat, który będzie tworzył w bieżącym katalogu katalog o
nazwie podanej jako pierwszy parametr wywołania, a następne dwa parametry będą nazwami
podkatalogów tworzonych w tym pierwszym.

Zadanie 9
Przeczytaj opis polecenia forfiles i z jego pomocą napisz batch, który zaznaczy pliki starsze
niż ileś dni i wypisze je do pliku. Program powinien jako parametr przyjąć katalog w którym
ma szukać, ilość dni oraz plik do którego zapisać wynik.

Zadanie 10
Często chcemy zawrzeć wiele poleceń w jednej linii. Służą do tego operatory

 & -- połączenie kolejnych poleceń, niezależnie od wyniku polecenia poprzedzającego


np.
 md cos & cd cos
 &&-- wykonanie drugiego z poleceń, pod warunkiem skończonego sukcesem
wykonania pierwszego polecenia np.
 dir p:\ && cd /d p:\mail
 || -- wykonanie z drugiego z poleceń, o ile pierwsze z poleceń zakończyło się błędem
 dir p:\ || cd /d p:\mail
Z drugiej strony, przy pisaniu skryptów często jedno polecenie nie mieści się nam w linii. Tak
zwane caret return ^ powoduje kontynuację wykonywania polecenia w następnym wierszu
dir ^
"C:\WINNT\Profiles\ffg\Application Data\Identities\{2E80A630-BC4A-11D3-
A3DF- 00A0C9442ECC}"

Ćwiczenie. Napisz program, który wyświetli zawartość katalogu podanego jako


parametr, a jeżeli taki katalog nie istnieje to go utworzy.

Zadanie 11. set -- ustawianie zmiennych oraz zmienne wbudowane


Polecenie set pozwala na ustawianie wartości zmiennych. Pozwala na dokonywanie prostych
operacji arytmetycznych, set /a np.
C:\>set /a N=%NUMBER_OF_PROCESSORS%+2
3
C:\>echo %N%
3
wyzerowanie zmiennej
set ZMIENNA=
a także na zastępowanie łańcuchów
C:\>set NAME=Jan
C:\>set SURNAME=Kowalski
C:\>set USERN=%NAME:J=j%%SURNAME:K=k%
C:\>echo %USERN%
jankowalski

Strona - 5
tak by można łatwo zamienić wszystkie wielkie litery (np w %USERNAME%) na małe...
Specyficzną formą zastępowania łańcuchów jest ich przycinanie (czy jak Hill to określił
indeksowanie)
C:\>echo %PROCESSOR_identifier%
x86 Family 5 Model 2 Stepping 12, GenuineIntel
C:\>set N=%PROCESSOR_identifier:~0,3%
C:\>echo %N%
x86
Indeksem pierwszego znaku jest zero. Druga z liczb określa liczbę interpretowanych znaków
(nie pozycję w napisie).
Poniżej znajduje się lista przydatnych do pisania skryptów zmiennych środowiskowych. Aby
znaleźć pełną listę aktualnie ustawionych zmiennych zalecam wydanie polecenia set
 COMPUTERNAME -- nazwa komputera (RO)

 HOMEDRIVE -- litera dysku zdefiniowanego w UserManagerze jako mapowana katalogowi


domowemu.

 HOMEPATH -- ścieżka do katalogu domowego (bez %HOMEDRIVE%)

 HOMESHARE -- UNC do share gdzie znajduje się katalog domowy.

 LOGONSERVER -- nazwa serwera który przeprowadził logowanie (PDC lub BDC)

 NUMBER_OF_PROCESSORS -- liczba procesorów.

 OS -- Windows_NT w wypadku NT. W innych Win32 niezdefiniowana.

 Path -- katalogi przeszukiwane przy uruchamianiu programów z linii komend.

 PATHEXT -- lista rozszerzeń akceptowanych jako programy

 SystemDrive -- dysk na którym znajduje się system

 SystemRoot -- katalog z którego działa system

 USERDOMAIN -- nazwa domeny z jakiej pochodzi bieżący użytkownik

 USERNAME -- nazwa bieżącego użytkownika

 USERPROFILE -- ścieżka do profilu bieżącego użytkownika (w wypadku roaming profiles lokalna


ścieżka gdzie kopiowany jest profil przechowywany na serwerze).

Ćwiczenie. Napisz program który przyjmie za parametr nazwę zmiennej do


utworzenia, tekst do zapisania w tej zmiennej, nazwę istniejącej zmiennej
systemowej oraz nazwę pliku. Program powinien utworzyć nową zmienną i
przypisać jej podany parametr a następnie wartość tej zmiennej oraz wartość
zmiennej podanej jako parametr zapisać do pliku podanego przy wywołaniu
programu.

Zadanie 12. for /d

Strona - 6
Wydaj w CMD polecenie for /? i zapoznaj się ze składnią tego
polecenia a następnie napisz następujące programy:
 Przeszukujący drzewo katalogów, zaczynając od katalogu
podanego jako pierwszy parametr, i wypisujący na ekran
ścieżkę do pliku katalogu zawierającego w nazwie tekst
podany jako drugi parametr
 Pingujący ping /? Wszystkie komputery z sieci podanej
jako parametr.

UWAGA: W momencie gdy używamy zmiennych w FOR linii poleceń mają one postać
%z, zaś w skrypcie musimy użyć dwóch znaków procentu: %%z

Strona - 7

You might also like