Podstawy DOS, pliki wsadowe

Transkrypt

Podstawy DOS, pliki wsadowe
PIiUK Paweł Gmys wicz. 2
strona 1 z 19
Definicje
System operacyjny - program który steruje działaniem wszystkich urz dze komputera, wywietla na ekranie komunikaty, odczytuje polecenia i wykonuje inne programy, zarz dza danymi zapisanymi na dyskach (twardych i elastycznych - dyskietkach).
Krótka historia:
System operacyjny DOS został wyprodukowany przez firm IBM (wersja 1.0), jako popularny system operacyjny dla komputerów osobistych. System konsekwentnie ulepszano, powstawały coraz to nowsze wersje DOS'a produkowane równolegle przez firmy IBM i Microsoft.
Poj cia, które nale y zna :
Dysk twardy - urz dzenie (pami masowa), które pozwala na zapis, przechowywanie i kasowanie danych - plików, które zorganizowane s w katalogi. Ka dy dysk twardy (tak jak
stacje dyskietek i CD-ROMy) ma swoj nazw - jest to kolejna litera alfabetu.
A:
oznaczenie
stacji
dysków
dyskietek
3,5"
B:
oznaczenie
stacji
dysków
dyskietek
5,4"
C: oznaczenie głównego, pierwszego, dysku twardego (nast pne dyski oznaczane s kolejnymi literami)
Plik - zbiór danych stanowi cych logiczn cało . Plik mo e zawiera słowa, liczby, polecenia, ci gi znaków o specjalnym znaczeniu itd. Ka dy plik ma nazw składaj c si z najwy ej
8 znaków (bez spacji), po niej wyst puje kropka oraz rozszerzenie [które mówi o funkcji pliku].
Katalog
Dla wygody u ytkowników stworzone zostały katalogi, które pozwalaj na segregowanie
(układanie) plików w grupy tematyczne, co pozwala na łatwiejsze ich odnajdywanie. Katalogi
maj nazw składaj c si z najwy ej 8 znaków. W ka dym katalogu mo na utworzy kolejny katalog - tzw. podkatalog - i umie ci w nim pliki. Partycja na dysku twardym symbolizowana jest przez katalog główny.
Schemat drzewa katalogowego.
PIiUK Paweł Gmys wicz. 2
strona 2 z 19
Znak zach ty
Jest to znak, który oznacza oczekiwanie komputera na wpisanie przez u ytkownika komendy.
Zazwyczaj wygl da nast puj co:
C:\>
C: - to oznaczenie dysku, na którym aktualnie pracujemy
\ - po tym znaku b d si pokazywa nazwy katalogów, do których wejdziemy
> - zako czenie znaku zach ty, po tym symbolu nale y wpisywa wszystkie polecenia
C:\>polecenie
POLECENIE
FUNKCJE POLECENIA
ver
Wersja systemu operacyjnego
time
Wy wietla aktualn godzin , daje mo liwo
date
Wy wietla aktualn dat . Mo na zmieni dat .
cls
"Czy ci ekran" (ustawia znak zach ty w lewym górnym rogu
ekranu)
dir
Wy wietla
zawarto
dysku
lub
katalogu
Dir /p - wy wietlenie listy plików i katalogów strona po stronie
Dir /w - wy wietlenie listy plików i katalogów w kolumnach
dir *?
Wy wietlenie
listy
konkretnych
plików.
Z
tym
poleceniem
u ywa
si
symboli
wieloznacznych
*,
?.
* zast puje wiele dowolnych znaków (nie tylko jeden)
?
zast puje
jeden
dowolny
znak
Dir *.bat - wy wietlenie pików z rozszerzeniem .bat
(nazwa
jest
dowolna)
Dir s*.* - wy wietlenie listy wszystkich plików, których
nazwa zaczyna si na liter "s", a rozszerzenie jest dowolne.
Dir t?st.bmp - wy wietlenie wszystkich plików z rozszerzeniem
.bmp, których nazwa zaczyna si na "t", druga litera jest nieznana, a ko cówka nazwy to "st"
cd nazwa
Wej cie do podanego katalogu. np.
C:\>cd programy
C:\programy> wej cie do katalogu o nazwie programy
cd..
Wyj cie z katalogu o jeden poziom.
cd\
Wyj cie ze wszystkich katalogów, a do katalogu głównego
md nazwa
Tworzenie nowego katalogu.
md test
rd nazwa
Kasowanie (usuwanie) katalogu (katalog musi by pusty - bez
plików
i
podkatalogów)
Rd test katalog o nazwie test został usuni ty z dysku
del
nazwa
erase nazwa pliku
ustawienia zegara.
pliku Kasowanie (usuwanie) pliku del list.doc plik o nazwie list (i rozszerzeniu .doc) został usuni ty z dysku.
PIiUK Paweł Gmys wicz. 2
strona 3 z 19
copy
copy [sk d i co] [dok d]
Najlepiej jest znajdowa si w katalogu, gdzie znajduj si pliki
do skopiowania (nie trzeba wtedy pisa cie ki doj cia).
copy list.doc A:
Plik list.doc z bie cego katalogu został skopiowany na dyskietk .
Mo na równie u ywa symboli wieloznacznych *, ?. np.
Copy *.txt C:\teksty
Wszystkie pliki z bie cego katalogu, które maj rozszerzenie
.txt zostały skopiowane do katalogu TEKSTY (na dysku C).
move
move [sk d i co] [dok d]
Przenosi plik z jednego miejsca w drugie
Przenoszenie pliku (plik jest kasowany w katalogu ródłowym i
przenoszony do innego katalogu).
move list.doc A:
Plik list.doc z bie cego katalogu został przeniesiony na dyskietk . Istnieje ju tylko jeden egzemplarz tego pliku - na dyskietce.
type nazwa.txt
Wy wietlenie na ekranie zawarto ci pliku tekstowego np.
type list.txt
copy con nazwa.txt
Tworzenie pliku tekstowego.
Po wpisaniu tego polecenia i naci ni ciu klawisza Enter mo na
zacz wpisywanie tekstu. Aby zako czy wpisywanie tekstu
nale y nacisn kombinacj klawiszy CTRL+Z i ENTER.
edit
Uruchomienie prostego edytora tekstu - mo na tworzy i edytowa ju utworzone pliki tekstowe. Samo polecenie edit uruchamia edytor tekstowy z przygotowanym pustym, nienazwanym
dokumentem.
Polecenie edit nazwa_pliku.txt:
- je eli podany plik nie istnieje, tworzy pusty, nazwany plik,
gotowy do wpisywania tekstu.
- je eli plik istnieje, otwiera go, mo na dokonywa zmiany.
tree
Wy wietlenie
listy
katalogów
w graficznej postaci drzewa katalogów.
tree /f
Wy wietlenie
katalogów,
podkatalogów
w graficznej postaci drzewa katalogowego.
vol
Wy wietlenie etykiety dysku.
label
Zmiana etykiety dysku
label nowa_nazwa (nie wi cej ni 8 znaków w nazwie)
attrib
Atrybuty
plików.
attrib nazwa_pliku - wy wietla jakie atrybuty ma dany plik
attrib +x nazwa_pliku - nadanie plikowi atrybutu
attrib -x nazwa_pliku - odwołanie nadania plikowi atrybutu
mo liwe
atrybuty
(wstaw
tam,
gdzie
x):
r - read only - tylko do odczytu (nie jest mo liwy zapis zmian w
tego
typu
plikach)
h - hidden - plik ukryty (nie wy wietla si w li cie plików)
s - system - plik systemowy (zawiera dane, które okre laj ustawienia
systemu)
a - archive - plik archiwalny
(i
podkatalogów)
i
plików
PIiUK Paweł Gmys wicz. 2
prompt
Zmiana wygl du znaku zach ty
prompt [tekst - opcjonalnie] [symbole]
SYMBOL
WYGL D W ZNAKU ZACH TY
$B
|
$Q
=
$L
<
$G
>
$T
godzina
$D
data
$V
wersja systemu operacyjnego
$N
litera bie cego dysku
$P
litera bie cego dysku :\
$_
przeniesienie kursora do nast pnego wiersza
strona 4 z 19
(znaku
gotowo ci).
np.
Polecenie: PROMPT $P$G
Wy wietli: C:\>
Polecenie: PROMPT wpisz komende $G
Wy wietli: wpisz komend >
1. Z katalogu SYSTEM znajduj cego si na dysku C przekopiuj wszystkie pliki systemowe (z rozszerzeniem sys) do katalogu C:\TEMP
2. Znajdujesz si na dysku A:. Nadaj dyskietce etykiet "PRACE".
3. "Wyczy ekran" i wy wietl dat .
4. Sprawd , jaka wersja systemu operacyjnego znajduje si w komputerze.
5. Wy wietl tylko te pliki, których nazwa ko czy si na "tg", a rozszerzenie ma w rodku
liter "a".
6. Na dysku C utwórz katalog o nazwie "A"
a) wejd do niego
b) utwórz podkatalog "B"
c) skasuj katalog "A" (nie u ywaj polecenia deltree)
C:\A>
7. Znajdujesz si w katalogu WINDOWS. Wy wietl struktur podkatalogów
i plików znajduj cych si w tym katalogu.
8. Znajdujesz si na dysku C. Na dysku A: Sprawd atrybuty wszystkich plików je li s ).
9. Zmie "znak zach ty" na nast puj cy (wyrazy pogrubione to dane wy wietlane przy
u yciu $; wszystkie znaczki nale y uzyska równie przy u yciu znaku $)
a) bie ca litera dysku >
b) dzisiejsza data = data
polecenie |
c) wersja systemu operacyjnego <=>
d) a teraz wró do standardowego wygl du "znaku zach ty"
10. Nadaj plikowi dokument.doc atrybut tylko-do-odczytu.
PIiUK Paweł Gmys wicz. 2
strona 5 z 19
11. Znajdujesz si w A:\KAT1\KAT2\ (utworzy odpowiednie katalogi dyskietce) wyjd
na dysk A u ywaj c jednego polecenia.
12. Jakie polecenie słu y do:
a) kasowania katalogów
b) kasowania plików
13. Wy wietl list plików i katalogów w formie kolumn lub listy przewijanej strona po
stronie z katalogu np. Windows.
Pliki wsadowe systemu MS-DOS
Budowa pliku wsadowego
Plik wsadowy (ang. batch file) umo liwia wykonanie dowolnego ci gu polece systemu MSDOS. Z punktu widzenia systemu operacyjnego plikiem wsadowym jest ka dy plik, którego
nazwa posiada rozszerzenie bat.
Plik wsadowy, aby mógł by poprawnie wykonany (zinterpretowany) powinien zawiera ci g
polece systemu, z których ka de powinno by umieszczone w osobnej linii pliku. Mog to
by polecenia wewn trzne, polecenia zewn trzne (programy) lub polecenia specyficzne dla
pliku wsadowego (polecenia, które s
dozwolone tylko w tym pliku).
Oto prosty przykład pliku wsadowego:
REM Plik Info.bat
ECHO Konfiguracja systemu MS-DOS
ECHO [autoexec.bat]
TYPE C:\autoexec.bat | MORE
ECHO [config.sys]
TYPE C:\config.sys | MORE
ECHO [Dysk twardy C:]
LABEL
ECHO Naci nij jaki klawisz...
PAUSE
Aby wykona powy szy plik nale y nada mu nazw z rozszerzeniem bat (mo e by Info.bat) a nast pnie w katalogu bie cym wpisa komend b d c nazw pliku wsadowego,
czyli odpowiednio:
C:\TEMP>info
Interpreter wykonuje sekwencyjnie jedno po drugim wszystkie polecenia pliku wsadowego w
kolejno ci ich wyst powania. Pierwsza linia pliku (polecenie REM) jest komentarzem jest
komentarzem i podczas wykonywania nie jest brana pod uwag . Dwie kolejne linie zawieraj
polecenie ECHO, którego wykonanie polega na wypisaniu podanego tekstu na ekranie. Linie
4 i 6 zawieraj polecenie MS-DOS wypisania na ekranie podanych plików (TYPE) z podziałem na strony (MORE). Linia ostatnia zawiera polecenie PAUSE, którego wykonanie polega
na wypisaniu tekstu "Naci nij jaki klawisz, aby kontynuowa ..." i zatrzymaniu wykonywania
pliku wsadowego do czasu naci ni cia dowolnego klawisza.
Polecenie ECHO
Je eli wykonamy plik wsadowy test.bat zawieraj cy tylko jedn lini z komend DIR, to na
ekranie zostan wypisane dwie rzeczy:
PIiUK Paweł Gmys wicz. 2
strona 6 z 19
C:\BATCH>test
C:\BATCH>dir
Wolumin w stacji dysków C nie ma etykiety
Numer seryjny woluminu: 364F-10E8
Katalog C:\BATCH
.
..
TEST
<DIR>
<DIR>
BAT
1 plik(ów)
2 katalog(ów)
00.08.04
00.08.04
3 00.08.04
3
271 859 712
20:42 .
20:42 ..
20:43 test.bat
bajtów
bajtów wolnych
C:\BATCH>_
Pierwsza linia zawiera tekst wydanej komendy. W linii drugiej interpreter wypisał tre polecenia wyst puj cego w pliku wsadowym. Kolejne linie zawieraj wynik wykonanania polecenia DIR. Przykład ten pokazuje sposób post powania podczas wykonywania pliku wsadowego - command.com czyta lini pliku wsadowego, wypisuje j na ekranie a nast pnie uruchamia odpowiedni program lub polecenie wewn trzne. Po zako czeniu wykonywania polecenia proces si powtarza - odczyta kolejn lini , wypisze jej tre na ekranie a nast pnie uruchomi odpowiedni program, itd.
Polecenie ECHO mo na wyda z argumentem ON lub OFF. Instrukcja
ECHO OFF
powoduje wył czenie wypisywania tre ci polece wyst puj cych w pliku wsadowym. Od
momentu wykonania tej instrukcji command.com nie b dzie wypisywał tre ci przetwarzanych
komend a jedynie ich wyniki. Bardzo cz sto instrukcj powy sz umieszcza si w pierwszej
linii pliku wsadowego.
U ycie argumentu ON powoduje oczywi cie wł czenie wypisywania tre ci polece .
Z analizy wydruku dowolnego pliku wsadowego zawieraj cego w pierwszej linii komend
ECHO OFF mo na wywnioskowa , e wył czone t komend wypisywanie tre ci polece
obowi zuje dopiero od linii drugiej - command.com zawsze wypisze tre pierwszej komendy
pliku, czyli ECHO OFF. Aby tego unikn nale y lini t poprzedzi znakiem '@' ("at") linia pliku, która poprzedzona jest tym znakiem nigdy nie jest wy wietlana na ekranie.
Podsumowuj c: istniej dwie metody całkowitego wył czenia wypisywania tre ci komend
pliku wsadowego:
1. umieszczenie w pierwszej linii komendy @ECHO OFF,
2. rozpoczynanie ka dej linii pliku znakiem '@'.
Instrukcja warunkowa (1)
Niemal wszystkie wykonywane programy podczas pracy s "zmuszane przez u ytkownika"
do podejmowania pewnych decyzji. Program niejednokrotnie musi decydowa jakiego rodzaju informacje powinien wy wietli , czy w danym momencie zareagowa na klawisze naciskane na klawiaturze, jak operacj nale y wykona , czy zako czy swoje działanie, itp.
Do podejmowania w programach tego typu decyzji słu y instrukcja warunkowa. W pliku
wsadowym instrukcja ta mo e mie jedn z trzech postaci.
PIiUK Paweł Gmys wicz. 2
strona 7 z 19
IF EXIST plik komenda
albo
IF NOT EXIST plik komenda
Instrukcja w tej postaci pozwala na wykonananie dowolnego polecenia tylko wówczas, gdy
istnieje podany plik (lub gdy nie istnieje je li u yto NOT). Rozwa my dwie nast puj ce komendy:
[1] DEL lista.txt > NUL
[2] IF EXIST lista.txt DEL lista.txt > NUL
Polecenie [1] jest oczywiste: usu plik lista.txt. Polecenie [2] mówi: je eli istnieje plik lista.txt, to usu ten plik. Efekt ko cowy obu polece jest taki sam - zostanie usuni ty plik lista.txt. Pomi dzy tymi poleceniami istnieje jednak pewna ró nica; o poleceniu [2] mo na by
powiedzie , e "jest lepsze". Otó polecenie DEL usuwa podany plik i nie wy wietla adnych
komunikatów o usuni ciu pliku, je eli jednak usuwany plik nie istnieje, to wykonanie polecenia jest niemo liwe - zostanie wówczas wy wietlony komunikat o bł dzie - mimo przekierowania wyj cia polecenia do pliku pustego komunikat ów pojawi si na ekranie. Taka sytuacja
nie b dzie miała miejsca w przypadku polecenia [2]: to polecenie bowiem wykona komend
DEL lista.txt tylko wówczas, gdy plik lista.txt istnieje - je eli w katalogu bie cym pliku nie
ma, to komenda jest pomijana i na tym ko czy si wykonanie całej instrukcji warunkowej.
Polecenie DEL mo na tutaj zast pi inn komend , np:
[1] TYPE lista.txt
[2] IF EXIST lista.txt TYPE lista.txt
W tym wypadku mamy doczynienia z t sam sytuacj : je eli nie istnieje plik lista.txt, to polecenie [1] wypisze komunikat o bł dzie - nie zrobi tego natomiast polecenie [2].
Etykiety i instrukcja skoku GOTO
Rozwa ymy przkład troch trudniejszy. Nale y utworzy kopi pliku lista.txt pod nazw lista.bak. Tutaj równie wskazane jest wykorzystanie instrukcji warunkowej:
@ECHO OFF
IF EXIST lista.txt COPY lista.txt lista.bak > NUL
Je eli w katalogu bie cym istnieje plik lista.txt zostanie wykonane polecenie utworzenia
jego kopii pod nazw lista.bak.
Konstruuj c powy szy plik nale y przewidzie jeszcze jedn sytuacj : w katalogu bie cym
mo e równie istnie plik o nazwie lista.bak. Powstaje wówczas pytanie "co w tej sytuacji
zrobi polecenie COPY?" - albo wy wietli komunikat o bł dzie i nie wykona kopiowania, albo
te skopiuje plik ródłowy usuwaj c przy tym zawarto istniej cego pliku docelowego - w
pewnych sytuacjach obie z tych mo liwo ci mog okaza si niezadowalaj ce.
Istniej oczywi cie metody rozwi zania tego problemu za pomoc opcji polecenia COPY,
warto jednak pami ta , e opcje polece cz sto zmieniaj si w ró nych wersjach interpretera
command.com i komenda, która poprawnie wykonuje si na naszym komputerze mo e w innej wersji interpretera zosta uznana za niepoprawn z powodu bł dnej opcji polecenia.
PIiUK Paweł Gmys wicz. 2
strona 8 z 19
Powy szy przykład demonstruje problem wykonania komendy tylko wówczas, gdy spełnione
s dwa lub wi cej okre lonych warunków - problemy tego typu rozwi zuje si na ogół za pomoc instrukcji skoku GOTO.
Instrukcja:
:Etykieta
definiuje tzw. etykiet w pliku wsadowym. Etykieta to inaczej mówi c słowna nazwa linii
pliku, umieszczaj c instrukcj etykiety nazywamy lini pliku podan po znaku ':' nazw . Nazwa etykiety powinna by jednym słowem nie zawieraj cym odst pów (mo na połaczy słowa znakiem '_') i powinna rozpoczyna si tu za znakiem ':', nie nale y rozdziela nazwy i
znaku
':'
odst pami.
Podczas wykonywania pliku wsadowego interpreter pomija linie pliku zawieraj ce etykiety
(podobnie jak ma ty miejsce w przypadku polecenia komentarza REM), instrukcji tej nie wykonuje si , słu y ona jedynie do przenoszenia wykonywania pliku przez instrukcj skoku
GOTO:
GOTO Etykieta
Wykonanie instrukcji skoku polega na przeniesieniu wykonywania pliku do tej linii w pliku,
która zawiera (jest nazwana) podan etykiet (wpisujemy tutaj tylko nazw etykiety, bez znaku ':').
Wró my teraz do przykładu usuwania pliku:
[1]
[2]
[3]
[4]
@ECHO OFF
IF EXIST lista.txt GOTO Usuwaj
ECHO Nie ma takiego pliku...
GOTO Koniec
[5]
[6]
[7]
[8]
:Usuwaj
ECHO Usuwanie pliku lista.txt...
DEL lista.txt > NUL
ECHO Wykonane...
[9] :Koniec
W linii [2] nast puje sprawdzenie istnienia w katalogu bie cym pliku lista.txt.
Je eli plik istnieje wykonana zostanie komenda GOTO Usuwaj - nast pi przej cie (przeniesienie wykonywania) do linii oznaczonej etykiet Usuwaj, czyli do linii [5]. Linia ta zostanie
zignorowana przez command.com, który rozpocznie wykonywanie pliku od linii nast pnej
[6]. Wypisany zostanie tekst "Usuwanie pliku lista.txt...", nast pnie interpreter wykona lini
[7] usuwaj c plik lista.txt, wypisze tekst "Wykonane..." i zako czy wykonywanie pliku na
ostatniej linii [9].
Podczas wykonywania linii [2] mo e si oczywi cie okaza , e katalog bie cy nie zawiera
pliku lista.txt. Instrukcja warunkowa wówczas pominie podan komend GOTO Usuwaj i
wykonana zostanie komenda nast pna w linii [3] - wypisanie tekstu "Nie ma takiego pliku..."
oraz
komenda
w
linii
[4]
przej cie
do
etykiety
Koniec.
Warto jeszcze zwróci uwag na lini [4]. Brak tej linii spowodowałby wypisanie tekstu "Nie
ma takiego pliku..." a nast pnie wykonanie komendy w liniach [6], [7] i [8], czyli pomimo
nieistnienia pliku byłyby wykonywane polecenia zwi zane z jego usuni ciem.
Plik wsadowy wykonuj cy wspomniane wcze niej kopiowanie pliku lista.txt na lista.bak
mógłby mie posta :
PIiUK Paweł Gmys wicz. 2
strona 9 z 19
@ECHO OFF
IF NOT EXIST lista.txt GOTO BrakPliku
IF EXIST lista.bak GOTO IstniejeKopia
ECHO
COPY
ECHO
GOTO
Kopiowanie lista.txt na lista.bak...
lista.txt lista.bak > NUL
Wykonane...
Koniec
:BrakPliku
ECHO Plik lista.txt nie istnieje...
GOTO Koniec
:IstniejeKopia
ECHO Plik lista.bak ju
istnieje...
:Koniec
Argumenty plików wsadowych
Podobnie jak polecenia i programy pliki wsadowe mo na uruchamia z argumentami. Do
poszczególnych argumentów pliku mo na si od odwoływa za pomoc symboli %1, %2, ...,
%9, które reprezentuj odpowiednio pierwszy, drugi, ..., dziewi ty argument pliku.
Przykład:
Napisa plik wsadowy mydel.bat, który usunie plik podany jako argument.
@ECHO OFF
IF EXIST %1 GOTO Usuwaj
ECHO Plik %1 nie istnieje...
GOTO Koniec
:Usuwaj
ECHO Usuwanie pliku %1 ...
DEL %1 > NUL
ECHO Wykonane...
:Koniec
UWAGA: plik nale y uruchomi z argumentem b d cym nazw pliku - jego brak mo e spowodowa bł d wykonania i w konsekwencji komunikat o wymaganym argumencie.
Interpreter podczas analizy linii pliku wszystkie wyra enia postaci %1, %2, ..., %9 zast puje
faktycznymi argumentami podanymi w linii komend:
C:\TEMP>mydel.bat lista.txt
Usuwanie pliku lista.txt ...
Wykonane...
C:\TEMP>_
Wida powy ej, e w linii drugiej interpreter zamiast symbolu %1 wypisał faktycznie podany
argument w wywołaniu lista.txt. Je eli plik wsadowy uruchamiamy bez argumentów to
wszystkie wyra enia %1, %2, ..., %9 s napisami pustymi (napis nie zawieraj cy adnych
znaków). Je eli w linii komend wyst puje N argumentów, to wyra enia %1, ..., %N reprezentuj podane argumenty, wyra enia %N+1, %N+2, ... s natomist napisami pustymi.
Nasuwa si proste pytanie, czy plik wsadowy mo na przetworzy z dziesi cioma lub wi cej
argumentami. Odpowied w zasadzie jest twierdz ca, ale o tym nieco pó niej...
PIiUK Paweł Gmys wicz. 2
strona 10 z 19
Instrukcja warunkowa (2)
Druga posta instrukcji warunkowej dotyczy porównywania napisów:
IF "napis1" == "napis2" komenda
albo
IF NOT "napis1" == "napis2" komenda
Instrukcja w tej postaci powoduje wykonanie podanej komendy tylko wówczas, gdy oba napisy napis1 i napis2 s równe, czyli takie same. Słowo równo oznacza tutaj równo idealn napisy musza mie tak sam długo i składa si z takich samych znaków. W przypadku
nazw plików i katalogów du e i małe litery nie s rozró nialne, w przypadku porównywania
napisów brane jest to pod uwag . Tak wi c napisy "Lista.txt" oraz "lista.txt" wcale nie s
równe.
Warto pami ta , e bezpieczniej jest podawa porównywane napisy w cudzysłowie oraz pomi dzy napisami a znakiem '=' umie ci znak odst pu - jego brak mo e spowodowa bł d
wykonania pliku.
Ta posta instrukcji warunkowej posłu y nam przede wszystkim do sprawdzania ilo ci podanych argumentów. Korzystaj c o obu postaci instrukcji mo emy napisa ostateczn wersj
pliku wsadowego mydel.bat usuwaj cego plik podany jako argument, przyjmuj c przy tym
nast puj ce zało enia:
•
•
•
plik wsadowy mo e by uruchomiony z argumentem '/?' - nale y wówczas wy wietli
informacj o przeznaczeniu oraz opis składni,
uruchomienie pliku z jednym argumentem b d cym nazw pliku powoduje jego usuni cie lub wypisaniu komunikatu o bł dzie,
je eli plik został uruchomiony z dwoma lub wi ksz ilo ci argumentów, to je li
pierwszym z nich jest '/?', to wy wietlamy informacj o przeznaczeniu i składni , je eli natomiast pierwszy argument jest nazw pliku, to wypisujemy komunikat o bł dzie i
składni .
@ECHO OFF
REM
REM Usuwa plik podany jako argument
REM
IF
IF
IF
IF
"%1" == "/?" GOTO Informacja
"%1" == "" GOTO BrakArgumentu
NOT "%2" == "" GOTO ZbytWieleArgumentow
EXIST %1 GOTO Usuwaj
ECHO Plik [%1] nie istnieje.
GOTO Koniec
:Usuwaj
ECHO Usuwanie [%1]
DEL %1 > NUL
GOTO Koniec
:BrakArgumentu
ECHO Oczekiwany argument.
GOTO Skladnia
:ZbytWieleArgumentow
PIiUK Paweł Gmys wicz. 2
strona 11 z 19
ECHO Zbyt wiele argumentów.
GOTO Skladnia
:Informacja
ECHO Usuwa podany plik.
:Skladnia
ECHO Składnia polecenia:
ECHO
MYDEL [/?] nazwa_pliku
:Koniec
Mimo i czynno jest stosunkowo prosta, to konstrukcja pliku wymaga sporego nakładu pracy. Przeanalizujemy krótko poszczególne warunki zadania.
Z przyj tych zało e wynika, e dopuszczalne s wywołania: "mydel /?", "mydel /? /?", "mydel /? lista.txt", "mydel /? lista.txt lista.bak" - dopuszczalne jest ka de wywołanie, w którym
pierwszy argument jest równy "/?". W zwi zku z tym w pliku wsadowym w pierwszej kolejno ci sprawdzamy wyst pienie tego wła nie argumentu
Kolejne instrukcje warunkowe dotycz ju przypadków uruchomienia bez argumentów lub z
argumentami, ale z pierwszym argumentem ró nym od "/?". Sprawdzamy najpierw czy podano jakikolwiek argument.
Trzecia istrukcja IF dotyczy przypadku: podano co najmniej jeden argument i argument
pierwszy jest nazw pliku. Wówczas usuwamy plik je eli jest to jedyny argument lub wypisujemy komunikat o bł dzie gdy podano wi cej ni jedn nazw pliku. Ilo podanych argumentów, a wła ciwie to czy argument jest jeden, sprawdzamy porównuj c argument drugi %2
z napisem pustym.
Ostatnie IF dotyczy ju tylko przypadku: podano dokładnie jeden argument b d cy nazw
pliku - pozostaje wi c sprawdzi czy podany plik istnieje.
Instrukcja CALL
Jak wspomniano na pocz tku w pliku wsadowym mo na u ywa dowolnych polece wewnetrznych i programów wykonywalnych (com i exe). Polecenie pliku wsadowego nie mo e
natomiast by plikiem wsadowym. Uruchomienie w pliku wsadowym innego pliku wsadowego wymaga zastosowania polecenia:
CALL plik_wsadowy [argumenty]
Do tej pory stosowane były instrukcje skoku zawsze do etykiety poło onej "poni ej" w pliku
wsadowym. Istnieje mo liwo przeniesienia wykonywania pliku do linii wcze niejszej, czyli
"powy ej" - tego typu konstrukcj , tzn. etykiet oraz wyst puj c poni ej instrukcj skoku do
tej
wła nie
etykiety
nazywamy
p tl .
P tle cz sto stosuje si w poł czeniu z instrukcj SHIFT. Polecenie SHIFT wykonuje tzw.
przesuni cie argumentów, tzn. argument pierwszy %1 zast powany jest przez argument drugi
%2, argument drugi %2 zast powany jest przez argument trzeci %3, itd. Ogólnie: argument
%N zast powany jest przez argument %(N+1).
PIiUK Paweł Gmys wicz. 2
strona 12 z 19
UWAGA:
W wyniku wykonania polecenia argument pierwszy pliku wsadowego jest bezpowrotnie tracony - nie ma mo liwo ci odwołania si do tego argumentu. Demonstruje to poni szy przykład:
@ECHO OFF
ECHO Arg1=[%1]
SHIFT
ECHO Arg1=[%1]
SHIFT
ECHO Arg1=[%1]
SHIFT
ECHO Arg1=[%1]
SHIFT
ECHO Arg1=[%1]
SHIFT
ECHO Arg1=[%1]
Arg2=[%2] Arg3=[%3] Arg4=[%4]
Arg2=[%2] Arg3=[%3] Arg4=[%4]
Arg2=[%2] Arg3=[%3] Arg4=[%4]
Arg2=[%2] Arg3=[%3] Arg4=[%4]
Arg2=[%2] Arg3=[%3] Arg4=[%4]
Arg2=[%2] Arg3=[%3] Arg4=[%4]
Tak wygl da wykonanie pliku z pi cioma argumentami:
C:\TEMP>argumen.bat list1.txt list2.txt list3.txt list4.txt list5.txt
Arg1=[list1.txt] Arg2=[list2.txt] Arg3=[list3.txt] Arg4=[list4.txt]
Arg1=[list2.txt] Arg2=[list3.txt] Arg3=[list4.txt] Arg4=[list5.txt]
Arg1=[list3.txt] Arg2=[list4.txt] Arg3=[list5.txt] Arg4=[]
Arg1=[list4.txt] Arg2=[list5.txt] Arg3=[] Arg4=[]
Arg1=[list5.txt] Arg2=[] Arg3=[] Arg4=[]
Arg1=[] Arg2=[] Arg3=[] Arg4=[]
Po pierwszym wykonaniu polecenia SHIFT wyra enie %1 reprezentuje ju napis list2.txt,
wyra enie %2 napis list3.txt i tak dalej. Po wykonaniu drugim wyra enie %1 jest równe
list3.txt, za %4 jest w ogóle napisem pustym - %4 musiałoby reprezentowa szósty argument
podany
w
wywołaniu,
tymczasem
podano
tylko
pi
argumentów.
Po pi tym wywołaniu wszystkie argumenty maj warto pust !. Ogólnie: je eli plik wsadowy uruchomiony został z N argumentami, to po N-1 wykonaniu instrukcji SHIFT ostatni z
podanych argumentów znajduje si na miejscu %1, po wykonaniu N-tym plik wsadowy w
ogóle nie ma argumentów.
Oto prosty przykład pliku wsadowego argument.bat, który umieszcza w pliku o nazwie argument.txt wszystkie podane argumenty, ka dy w osobnej linii.
@ECHO OFF
IF "%1" == "/?" GOTO Informacja
:Start
IF "%1" == "" GOTO Koniec
ECHO %1 >> argument.txt
SHIFT
GOTO Start
:Informacja
ECHO Umieszcza w pliku argument.txt wszystkie podane argumenty.
ECHO Składnia polecenia:
ECHO
ARGUMENT [/?] [arg1 arg2 ...]
:Koniec
Je li pierwszy argument jest równy "/?" zostanie wy wietlona pomoc. W pozostałych przypadkach wykonywana jest p tla od etykiety Start do instrukcji skoku GOTO Start.
PIiUK Paweł Gmys wicz. 2
strona 13 z 19
Najwa niejsz instrukcj ka dej p tli jest instrukcja przerwania p tli, czyli przeniesienia wykonywania pliku poza p tl . W tym wypadku zadanie to wykonuje polecenie IF, które sprawdza niepusto argumentu %1. Cały cykl powtarzany jest tak długo a argument %1 osi gnie
warto napisu pustego. Poniewa wewn trz p tli wyst puje polecenie SHIFT w którym
momencie sko cz si argumenty pliku i wykonywanie p tli zostanie zako czone.
Konstruuj c p tl nale y zawsze stworzy warunki umo liwiaj ce jej zako czenie. Nietrudno
przewidzie jaki efekt mo na osi gn po usuni ciu z powy szego pliku instrukcji SHIFT.
Wówczas podczas wykonywania p tli argumenty nie ulegałyby adnym zmianom co oznacza,
e p tla mogłaby si nigdy nie sko czy . Ten sam skutek przyniosłoby usuni cie instrukcji
wyj cia z p tli IF. W tym wypadku argumenty do ich wyczerpania ulegałyby zmianom, nie
wpłyn łoby to jednak na instrukcj GOTO Start, która zawsze wykonywałaby skok do podanej etykiety. Tak sytuacj nazywamy cz sto "zap tleniem lub powieszeniem programu".
Je eli u ywamy w pliku wsadowym p tli wskazane jest przedsi wzi cie pewnych rodków
ostro no ci. Otó wykonanie pliku wsadowego mo na przerwa naciskaj c klawisz Ctrl+C.
Wówczas command.com mo e zareagowa na naci ni ty klawisz i zako czy wykonywanie
pliku, aby jednak było to mo liwe nale y ustawi wykrywalno tego klawisza poleceniem:
BREAK ON
Polecenie to mo na wyda na klawiaturze, albo umie ci w pliku wsadowym przed rozpocz ciem p tli - najlepiej na pocz tku pliku. Samo polecenie BREAK bez argumentu ON lub OFF
wy wietla jedynie stan reakcji na klawisz Ctrl+C.
Warto pami ta :
NIEOMYLNO
=
FORMAT C:
co mniej wi cej znaczy tyle, e kres wiary we własne umiej tno ci zawsze idzie w parze z
utrat cz ci dysku.
P tle wykorzystujemy na ogół, gdy okre lon czynno trzeba wykona na wi kszej liczbie
liczbie plików. Maj c do dyspozycji plik wsadowy mydel.bat usuwaj cy jeden podany plik,
zadanie polegaj ce na usuni ciu wszystkich plików b d cych argumentami pliku wsadowego
sprowadza si wył cznie do wywołania pliku mydel.bat tak ilo razy, ile plików mamy usun .
Przykład:
Napisa plik wsadowy usuwaj cy wszystkie pliku podane w postaci argumentów.
@ECHO OFF
BREAK ON
:Start
IF "%1" == "" GOTO Koniec
CALL mydel.bat %1
SHIFT
GOTO Start
:Koniec
Obsług bł dów oraz "pomoc" nale y dopisa samodzielnie.
PIiUK Paweł Gmys wicz. 2
strona 14 z 19
Instrukcja warunkowa (3)
Kiedy program ko czy swoje działanie ma mo liwo poinformowania systemu operacyjnego
o stanie swojego zako czenia. Przekazana informacja jest dosy uboga albowiem mo e by
zaledwie nieujemn liczb całkowit , ale o tym, e w wiecie komputerów jedna liczba mo e
by informacj bardzo obszern nikogo przekonywa nie trzeba. Liczb t nazywamy kodem
wyj cia programu.
Z mo liwo ci tej programy nie zawsze korzystaj i cz sto program nie pozostawia po sobie
adnej informacji - wówczas system operacyjny traktuje taki stan zako czenia jako poprawny
i przyjmuje, e zako czony program pozostawił po sobie kod zero (cz sto mówimy te , e
program zako czył si z kodem zero). Nie oznacza to wcale, e liczby ró ne od zera oznaczaj bł dne zako czenie programu; jest to cz sto przyjmowana w informatyce reguła na mocy
której liczba zero oznacza poprawne wykonanie okre lonej operacji.
Instrukcja warunkowa w trzeciej postaci słu y wła nie do sprawdzania stanu zako czenia
ostatnio wykonanego programu lub komendy:
IF ERRORLEVEL kod_wyj cia komenda
albo
IF NOT ERRORLEVEL kod_wyj cia komenda
Kod_wyj cia jest tutaj liczb naturaln , komenda poleceniem do wykonania. Instrukcja w tej
postaci wykona podan komend tylko wówczas, gdy ostatnio wykonywane polecenie zwróciło kod wyj cia wi kszy lub równy podanej liczbie (w przypadku u ycia NOT mniejszy od
podanej
liczby).
Z tej postaci instrukcji warunkowej korzysta b dziemy wył cznie przy sprawdzaniu kodu
wyj cia polecenia CHOICE, które stosuje si w systemie MS-DOS do zadawania ró nego
rodzaju pyta (uwaga konieczne istnienie polecenia w systemie). Składnia polecenia jest nast puj ca:
CHOICE [/C:odpowiedzi] [/N] [/T:Z,XY] [tekst]
Co robi polecenie CHOICE? Po wydaniu komendy CHOICE bez argumentów na ekranie zostanie wy wietlony napis "[T,N]?" a nast pnie program b dzie czekał do momentu naci ni cia jednej z liter 'T' lub 'N'. Wydanie polecenia w postaci CHOICE /C:12A* spowoduje wypisanie tekstu "[1,2,A,*]?" i oczekiwanie programu na naci ni cie którego z podanych znaków.
Je eli podamy okre lony tekst, to program wypisze go a nast pnie wy wietli list dopuszczalnych odpowiedzi. U ycie opcji "/N" spowoduje, e nie zostanie wy wietlona lista odpowiedzi,
opcja
"/T"
okre la
odpowied
domy ln
Z
po
XY
sekundach.
Po wydaniu polecenia:
CHOICE /C:ABX /N /T:0,5 "Rodzaj szkoły? [A-podst, B- redn, X- adna] : "
na ekranie pojawi si tekst "Rodzaj szkoły? [A-podst, B- redn, X- adna] : " a nast pnie program b dzie czekał na naci ni cie jednego z klawiszy A, B, X przez maksymalnie 5 sekund niewybranie adnej z odpowiedzi jest równoznaczne z wybraniem odpowiedzi domy lnej,
czyli odpowiedzi X.
Program po wyborze odpowiedniego klawisza b d po upływie dopuszczalnego czasu ko czy
PIiUK Paweł Gmys wicz. 2
strona 15 z 19
swoje działanie zwracaj c do systemu operacyjnego kod wyj cia, który jest numerem odpowiedzi na podanej li cie, tzn. po wyborze A program zwróci 1, po wyborze B liczb 2, za po
wyborze X liczb 3.
Przykład:
Napisa plik wsadowy, który b dzie potrafił uruchomi jeden z trzech programów w zale noci od wyboru u ytkownika, np. Norton Commander lub Windows( Raczej nieu ywane obecnie w tej postaci ale mo na zastosowa do uruchomienia ro nych systemów operacyjnych)
@ECHO OFF
:Start
CLS
ECHO _
ECHO _
ECHO
[ 1 ]. Norton Commander
ECHO
[ 2 ]. Turbo Pascal
ECHO
[ 3 ]. Windows
ECHO
[ Q ]. Zako cz
ECHO _
ECHO _
CHOICE /C:123Q /N "Wybierz program do uruchomienia : "
IF ERRORLEVEL 4 GOTO Koniec
IF ERRORLEVEL 3 GOTO Windows
IF ERRORLEVEL 2 GOTO Pascal
ECHO Trwa uruchamianie Norton Commandera...
C:\NC\NC.EXE
GOTO Start
:Windows
ECHO Trwa uruchamianie systemu Windows...
C:\WINDOWS\WIN.COM
GOTO Koniec
:Pascal
ECHO Trwa uruchamianie Turbo Pascala...
C:\TP7\TURBO.EXE
GOTO Start
:Koniec
Linie zawieraj ce polecenie ECHO z kresk podkre lenia nale y wpisa w nast puj cy sposób: po wpisaniu słowa ECHO nale y wpisa klawisz spacji a nast pnie nacisn i przytrzyma klawisz Alt i przy wci ni tym klawiszu Alt na klawiaturze numerycznej (z prawej strony)
wpisa kod znaku 255 po czym mo na zwolni klawisz Alt - kursor powinien si wówczas
przesun o jedn pozycj w lewo, a wszystko to po to, aby zmusi polecenie ECHO do wypisania
pustej
linii.
Podane w pliku ciezki dost pu musz oczywi cie by poprawne - mo na je nawet zmieni na
cie ki do innych programów.
Zwró my uwag na kolejno sprawdzania kodu wyj cia polecenia CHOICE. Instrukcje warunkowe porównuj kod wyj cia od warto ci najwi kszej mo liwej czyli 4 w dół do warto ci
przedostatniej 2 - pomini cie wszystkich IF jest równowa ne z wyborem odpowiedzi pierwszej. Taki sposób sprawdzania warto ci kodu jest konsekwencj sposobu wykonywania instrukcji warunkowej - je eli w pierwszej instrukcji IF umie ciliby my kod 2, to spełnienie
tego warunku mówiłoby tylko tyle, e wybrano odpowied 2, 3 lub 4. Mo na przyj , e
sprawdzanie kodu wyj cia zawsze wykonujemy w ten sam sposób od warto ci najwi kszych
PIiUK Paweł Gmys wicz. 2
strona 16 z 19
do
najmniejszych
cho
oczywi cie
mo na
wykona
to
inaczej.
Pozostaje tylko doda , e uruchomienia systemu Windows podczas pracy Windows jest raczej
niewykonalne i zako czy si odpowiednim komunikatem. Mo na to jednak zrobi podczas
pracy trybu MS-DOS (tryb MS-DOS jest czym innym ni Wiersz polece ). Kto zamierza to
sprawdzi , powinien odnale plik C:\autoexec.bat i w ostatnim wierszu tego pliku wpisa
polecenie uruchamiaj ce powy szy plik wsadowy, czyli np. CALL C:\TEMP\mymenu.bat, po
czym wykona "reboot" komputera.
Przykład:
Jako drugi przykład wykorzystania trzeciej postaci instrukcji warunkowej napiszemy plik
wsadowy zmieniaj cy nazw pliku. Obsług bł dów oraz informacje o przeznaczeniu nale y
uzupełni samodzielnie.
@ECHO OFF
BREAK ON
:Usuwaj
IF NOT EXIST %2 GOTO MoznaZmienic
CHOICE /C:TN "Plik %2 ju istnieje. Usun
IF ERRORLEVEL 2 GOTO Koniec
DEL %2 > NUL
istniej cy plik "
:MoznaZmienic
ECHO Przenoszenie %1 na %2
REN %1 %2 > NUL
GOTO Koniec
:Koniec
Przej cie do etykiety Usuwaj powinno nast pi w sytuacji gdy podano dwa argumenty b d ce
nazwami plików i argument pierwszy jest nazw istniej cego pliku. Wówczas je eli nie istnieje plik podany jako drugi argument, to zmieniamy nazw pliku, w przeciwnym wypadku
zadajemy pytanie czy usun istniej cy plik. Po odpowiedzi negatywnej przechodzimy na
koniec pliku wsadowego, w przypadku odpowiedzi pozytywnej usuwamy istniej cy plik i
wykonujemy zmian nazwy.
Instrukcja iteracyjna FOR
Instrukcje iteracyjne (powtarzaj ce, zwane te p tlami) słu w j zykach programowania do
wielokkrotnego wykonywania podobnych czynno ci. Ogólnie dzieli si instrukcje iteracyjne
na p tle o znanej lub niemo liwej do przewidzenia z góry liczbie powtórze . Sformułowanie
"o znanej liczbie powtórze " wymaga pewnego wyja nienia. Przez znan ilo iteracji rozumie si tu ilo znan nie w momencie pisania programu lub pliku wsadowego, tylko ilo
znan w momencie rozpocz cia wykonywania p tli. I tak na przykład: je eli p tla zostanie
powtórzona tyle razy ile plików zawiera katalog bie cy, to mimo i nie mo emy przewidzie
ile plików b dzie zawierał katalog traktujemy t p tl jako p tl o znanej liczbie powtórze liczba t b dzie bowiem znana w momencie rozpoczynania p tli. Równie omówiony wczeniej przykład pliku wsadowego, który usuwał wszystkie pliki podane jako argumenty jest
przykładem p tli o znanej liczbie powtórze - plik mo na uruchomi z ka d liczb argumentów, niemniej jednak liczba ta zawsze jest znana w momencie uruchomienia pliku wsadowego.
A oto przykład p tli o niemo liwej do ustalenia z góry liczbie powtórze :
PIiUK Paweł Gmys wicz. 2
strona 17 z 19
:Start
CHOICE /C:TN "Powtórzy ?"
IF ERRORLEVEL 2 GOTO Koniec
GOTO Start
:Koniec
Przerwanie p tli nast puje w momencie naci ni cia klawisza 'N' - nie mo na z góry przewidzie ile razy u ytkownik wybierze odpowied 'T'.
Instrukcja iteracyjna FOR pliku wsadowego jest p tl o znanej liczbie powtórze i nast puj cej składni:
FOR %%X IN (lista) DO komenda
Argument lista jest obowi zkowy i zawiera pooddzielane znakami odst pu nazwy plików - w
nazwach tych mog wyst powa znaki wieloznaczne '?' i '*'. Po znakach '%%' pojemy tzw.
zmienn - odpowiednik niewiadomej w matematyce. Zmienna ta b dzie kolejno przybiera
wszystkie mo liwe warto ci spo ród warto ci podanych na li cie (lista). Dla ka dej mo liwej
warto ci zmiennej X zostanie wykonane polecenie komenda.
Rozwa my przykład:
[1] FOR %%A IN (1 2 3) DO DIR
[2] FOR %%K IN (zadanie zadanie.bat zadanie.bak) DO DIR
Ka da z powy szych instrukcji przyniesie ten sam efekt - trzy razy zostanie wykonane polecenie DIR. W przykładzie [1] zmienna A przybierze (otrzyma) warto "1" a nastepnie nast pi
wykonanie polecenia DIR. Po wykonaniu komendy zmienna A otrzyma warto "2" i ponownie nast pi wykonanie komendy. po jej zako czeniu zmienna A otrzyma warto "3" i zostanie wykonana komenda. Na tym zako czy si wykonywanie polecenia FOR.
W przykładzie [2] b dzie dokł dnie tak samo z t tylko ró nic e zmienna b dzie przyjmowa warto ci "zadanie", "zadanie.bat" oraz "zadanie.bak".
Odpowied na pytanie po co zmienna przyjmuje warto ci z listy staje si oczywista je li powiemy, e wyra enie %%X mo e wyst powa w tre ci podanej komendy i reprezentuje aktualn warto zmiennej X, podobnie jak %1 reprezentuje pierwszy argument pliku wsadowego.
Tak wi c, wykonanie polecenia:
FOR %%A IN (1 2 3 4 5 6 7 8 9 0) DO ECHO Warto
zmiennej = %%A
spowoduje wypisanie dziesi ciu linii zawieraj cych tekst "Warto
wiedni cyfr z listy.
zmiennej = " oraz odpo-
Polecenie
FOR %%A IN (*.txt *.bak) DO COPY %%A C:\TEMP
skopiuje wszystkie pliki z katalogu bie cego z rozrzerzeniami txt lub bak do podanego katalogu C:\TEMP.
PIiUK Paweł Gmys wicz. 2
strona 18 z 19
Zadania do samodzielnego rozwi zania
Wszystkie pliki wsadowe powinny działa we wszystkich mo liwych przypadkach zwi zanych z istnieniem plików. Nale y równie zadba o to, aby podczas wykonywania plików
wy wietlane były wył cznie informacje wypisywane przez polecenie ECHO pliku wsadowego.
1. Napisa plik wsadowy, który zmieni nazw pliku (np. lista.txt) na tak sam , ale z innym rozszerzeniem.
2. Napisa plik wsadowy, który poł czy dwa dowolnie wybrane pliki w jeden plik o nazwie wynik.txt.
3. Napisa plik wsadowy, który zamieni zawarto dwóch dowolnie wybranych plików.
4. Korzystaj c m.in. z polece find oraz sort napisa plik wsadowy mydir.bat, który wywietli zawarto katalogu bie cego. Na wydruku powinny by widoczne tylko pliki i
katalogi. Wydruk powinien zawiera w pierwszej kolejno ci list plików a nast pnie
list katalogów. Zarówno pliki jak i katalogi nale y posortowa alfabetycznie. Nie
wolno korzysta z adnych opcji polecenia dir, mo na natomiast skorzysta z tymczasowych plików pomocniczych.
5. Napisa plik wsadowy mycopy.bat słu cy do tworzenia kopii pliku pod inn nazw ,
przyjmuj c nast puj ce zało enia:
o plik działa tylko w przypadku gdy został uruchomiony z dwoma ró nymi argumentami,
o je eli plik o takiej nazwie jak nazwa kopii ju istnieje, to nie wykonujemy kopiowania.
6. Napisa plik wsadowy myren.bat słu cy do zmiany nazwy na nazw podan , przyjmuj c nast puj ce zało enia:
o plik działa tylko w przypadku gdy został uruchomiony z dwoma argumentami,
o je eli oba argumenty s takie same, to je li plik istnieje nie wykonujemy adnych czynno ci, je li natomiast pliku nie ma wypisujemy komunikat o bł dzie,
o je eli plik o takiej nazwie jak nowa nazwa pliku ju istnieje, to wypisujemy
komunikat o bł dzie.
7. Napisa plik wsadowy mycopy.bat słu cy do tworzenia kopii pliku pod inn nazw ,
przyjmuj c nast puj ce zało enia:
o plik mo e by uruchomiony z dowoln ilo ci argumentów,
o je eli nie podano argumentów wypisujemy składni ,
o je eli pierwszy argument jest równy "/?" wypisujemy informacj o przeznaczeniu i składni ,
o je eli podano argumenty i pierwszy z nich nie jest równy "/?" to próbujemy
wykona kopiowanie gdy podano dokładnie dwa ró ne argumenty, w przeciwnym wypadku (gdy podano wi cej ni dwa, gdy podano jeden argument lub
gdy argumenty s dwa, ale takie same) wypisujemy komunikat o bł dzie,
o je eli plik o takiej nazwie jak nazwa kopii ju istnieje, to nie wykonujemy kopiowania.
8. Napisa plik wsadowy myren.bat słu cy do zmiany nazwy pliku pod podan , przyjmuj c nast puj ce zało enia:
o plik mo e by uruchomiony z dowoln ilo ci argumentów,
o je eli nie podano argumentów wypisujemy składni ,
o je eli pierwszy argument jest równy "/?" wypisujemy informacj o przeznaczeniu i składni ,
o je eli podano argumenty i pierwszy z nich nie jest równy "/?" to próbujemy
zmieni nazw gdy podano dokładnie dwa argumenty, w przeciwnym wypad-
PIiUK Paweł Gmys wicz. 2
strona 19 z 19
ku (gdy podano wi cej ni dwa, gdy podano jeden argument lub gdy argumenty s dwa, ale takie same) wypisujemy komunikat o bł dzie,
o je eli plik o takiej nazwie jak nazwa kopii ju istnieje, to usuwamy go, a nast pnie wykonujemy zmian nazwy pliku,
o je eli argumenty s dwa i s takie same oraz plik istnieje, to efekt powinien
by taki, jakgdyby zmieniono nazw pliku.