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.