PIiUK Paweł Gmys wicz. 2 strona 1 z 19



Podobne dokumenty
Systemy operacyjne II Laboratorium. Część 1: Pliki wsadowe Windows

Pliki wsadowe systemu DOS

Systemy operacyjne Laboratorium. Pliki wsadowe Windows (część 2)

Polecenia wewnętrzne:

Wiersz poleceń Windows

Administracja systemem Windows XP

DOS. Opis podstawowych komend w systemie MS DOS 6.22

TEMAT : System operacyjny MS DOS pliki wsadowe

DOS Podstawowe komendy Przygotowanie dyskietki do pracy Praca z katalogami w systemie DOS Operacje kopiowania

Laboratorium Systemów Operacyjnych Komputerów Tryb linii komend i programowanie wsadowe w systemach DOS/Windows

Windows XP Wiersz polecenia

UŻYTKOWNIK. APLIKACJE UŻYTKOWE (wszelkie programy zawarte domyślnie w systemie operacyjnym jak i samodzielnie zainstalowane przez użytkownika systemu)

Instrukcja obsługi programu Pilot PS 5rc

Powłoka poleceń Windows XP

Trochę o plikach wsadowych (Windows)

obsług dowolnego typu formularzy (np. formularzy ankietowych), pobieranie wzorców formularzy z serwera centralnego,

Zastosowanie programu Microsoft Excel do analizy wyników nauczania

@echo off wyłączyliśmy polecenie "echo" Pause>nul oczekiwanie naciśnięcia dowolnego przycisku Pause? echo. przerwa miedzy wierszami

Autorzy: Kraków, stycze 2007 Łukasz Dziewanowski Filip Haftek (studenci AGH III roku kierunku Automatyka i Robotyka)

POLECENIA ================================================================================

System midzybankowej informacji gospodarczej Dokumenty Zastrzeone MIG DZ ver Aplikacja WWW ver. 2.1 Instrukcja Obsługi

MS-DOS polecenia wewnętrzne i

Temat: Wybrane polecenia systemu DOS.

Wiersz poleceń systemu Windows. Wybrane polecenia linii poleceń (podstawowe operacje dyskowe)

Narzędzia informatyczne w językoznawstwie

Planowanie adresacji IP dla przedsibiorstwa.

Systemy operacyjne laboratorium 3 Paweł Gmys strona 1

SYSTEMY OPERACYJNE ĆWICZENIE POLECENIA SYSTEMU MSDOS

del - usuwanie zbioru lub grupy zbiorów z dysku, np. del c:\public\autoexec bat, del c:\public\*.*

Program SMS4 Monitor

SUPLEMENT SM-BOSS WERSJA 6.15

Poradnik korzystania z serwisu UNET: Dostp do poczty elektronicznej ze strony WWW

Programowanie w języku Python. Grażyna Koba

Wprowadzanie i zmiany faktur z zakupu, wydruk rejestru zakupu

CYKL ZAJ POZNAJEMY POWER POINT

Opera Wykorzystanie certyfikatów niekwalifikowanych w oprogramowaniu Opera wersja 1.1 UNIZETO TECHNOLOGIES SA

PODSTAWOWE INFORMACJE NA TEMAT KONSOLI W SYSTEMIE WINDOWS

Instalacja programu Sprzeda

Instalacja programu Sprzeda z motorem. bazy danych Pervasive V8

Zajęcia 1. mgr Aleksandra Zakrzewska 22 maja 2006

II. Programowanie wsadowe DOS/Windows

INSTRUKCJA OBSŁUGI PROGRAMU C-STATION

ZPKSoft. Kreator dokumentów. Wstp. Przeznaczenie. Definicje

Klonowanie MAC adresu oraz TTL

Sposoby przekazywania parametrów w metodach.

Temat: Polecenia linii komend.

Twoja instrukcja użytkownika HP PAVILION DV6-1215SA

Technologia informacyjna. Laboratorium nr 1.

zdefiniowanie kilku grup dyskusyjnych, z których chcemy odbiera informacje, dodawanie, usuwanie lub edycj wczeniej zdefiniowanych grup dyskusyjnych,

{Opracowała Małgorzata Roguska} Tematy lekcji:

KONKURS PRZEDMIOTOWY INFORMATYCZNY DLA UCZNIÓW GIMNAZJUM

Ćwiczenie 1. Ćwiczenie 2. Ćwiczenie 3. Opisz działanie następujących komend systemowych : COPY EDIT FDISK FIND FORMAT XCOPY

Zespół Szkół Technicznych w Suwałkach. Pracownia Systemów Komputerowych. Ćwiczenie Nr 15 PRACA W TRYBIE MS-DOS. Opracował Sławomir Zieliński

Program Sprzeda wersja 2011 Korekty rabatowe

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

DOS WYBRANE ZAGADNIENIA

Instrukcja obsługi dodatku InsERT GT Smart Documents

Zadania do wykonaj przed przyst!pieniem do pracy:

SUPLEMENT SM-BOSS WERSJA 6.15

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

Proces tworzenia programu:

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).

FUNKCJE UYTKOWNIKA. Rozbrajanie systemu pod przymusem [Kod przymusu] Blokowanie linii

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Program Sprzeda 2012

Operating System (OS)

ELEMENT SYSTEMU BIBI.NET. Instrukcja Obsługi

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

geometry a w przypadku istnienia notki na marginesie: 1 z 5

Podstawowe obiekty AutoCAD-a

Komputerowa Ksiga Podatkowa Wersja 11.4 ZAKOCZENIE ROKU

Bazy danych. Plan wykładu. Pierwsza posta normalna. Druga posta normalna. Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML

Program do konwersji obrazu na cig zero-jedynkowy

Lekcja 6 Programowanie - Zaawansowane

Pliki wsadowe powłoki Windows.

System Wspierania Pracy Przedstawicieli Handlowych Pocket Seller. Instrukcja uytkownika

Systemy operacyjne lab. 6 Paweł Gmys strona 1

Test z przedmiotu zajęcia komputerowe

Twoja instrukcja użytkownika PHILIPS JR32RWDVK

JANEX INTERNATIONAL Sp z O.O Warszawa, ul. Płomyka 2 Tel. (022) INSTRUKCJA OBSŁUGI

Przed instalacj naley sprawdzi wersj posiadanych sterowników urzdzenia. Powinna by nie starsza ni:

DOS COMMAND.COM. Rys. 2. Główne moduły programowe systemu operacyjnego DOS. Interpreter poleceń. Rys. 3. Warstwowa struktura systemu DOS

PSK. Jak przygotować maszynę wirtualną? 1. Utworzenie maszyny wirtualnej

Przycisk pracy. Przycisk stopu/kasowanie

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Tryb konsolowy - ćwiczenia. 012a

Uywanie licencji typu Standalone. Japanese Using a Standalone License. Language. Contents

Kopiowanie, przenoszenie plików i folderów

TRYB PREZENTOWANIA INFORMACJI O ODJAZDACH

Gramatyki regularne i automaty skoczone

INSTYTUT TECHNIKI Zakad Elektrotechniki i Informatyki mdymek@univ.rzeszow.pl FLASH

1 Przygotował: mgr inż. Maciej Lasota

Co nowego w wersji 3.0?

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy:

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Lekcja 12 - POMOCNICY

Pracownia internetowa w ka dej szkole (edycja 2004)

Laboratorium - Praca z poleceniami wiersza poleceń w systemie Windows

Korzystając z plików wsadowych, zwanych również programami wsadowymi lub skryptami, można uprościć rutynowe lub wielokrotnie wykonywane zadania.

Transkrypt:

PIiUK Paweł Gmys wicz. 2 strona 1 z 19 Definicje System operacyjny - program który steruje działaniem wszystkich urzdze komputera, wy- wietla na ekranie komunikaty, odczytuje polecenia i wykonuje inne programy, zarzdza 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. Pojcia, które naley zna: Dysk twardy - urzdzenie (pami masowa), które pozwala na zapis, przechowywanie i kasowanie danych - plików, które zorganizowane s w katalogi. Kady 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 (nastpne dyski oznaczane s kolejnymi literami) Plik - zbiór danych stanowicych logiczn cało. Plik moe zawiera słowa, liczby, polecenia, cigi znaków o specjalnym znaczeniu itd. Kady plik ma nazw składajc si z najwyej 8 znaków (bez spacji), po niej wystpuje kropka oraz rozszerzenie [które mówi o funkcji pliku]. Katalog Dla wygody uytkownikó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ładajc si z najwyej 8 znaków. W kadym katalogu mona utworzy kolejny katalog - tzw. podkatalog - i umieci 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 zachty Jest to znak, który oznacza oczekiwanie komputera na wpisanie przez uytkownika komendy. Zazwyczaj wyglda nastpujco: C:\> C: - to oznaczenie dysku, na którym aktualnie pracujemy \ - po tym znaku bd si pokazywa nazwy katalogów, do których wejdziemy > - zakoczenie znaku zachty, po tym symbolu naley wpisywa wszystkie polecenia C:\>polecenie POLECENIE ver time date cls FUNKCJE POLECENIA Wersja systemu operacyjnego Wywietla aktualn godzin, daje moliwo ustawienia zegara. Wywietla aktualn dat. Mona zmieni dat. "Czyci ekran" (ustawia znak zachty w lewym górnym rogu ekranu) dir Wywietla zawarto dysku lub katalogu Dir /p - wywietlenie listy plików i katalogów strona po stronie Dir /w - wywietlenie listy plików i katalogów w kolumnach dir *? Wywietlenie listy konkretnych plików. Z tym poleceniem uywa si symboli wieloznacznych *,?. * zastpuje wiele dowolnych znaków (nie tylko jeden)? zastpuje jeden dowolny znak Dir *.bat - wywietlenie pików z rozszerzeniem.bat (nazwa jest dowolna) Dir s*.* - wywietlenie listy wszystkich plików, których nazwa zaczyna si na liter "s", a rozszerzenie jest dowolne. Dir t?st.bmp - wywietlenie wszystkich plików z rozszerzeniem.bmp, których nazwa zaczyna si na "t", druga litera jest nieznana, a kocówka nazwy to "st" cd nazwa cd.. cd\ md nazwa rd nazwa del nazwa pliku erase nazwa pliku Wejcie do podanego katalogu. np. C:\>cd programy C:\programy> wejcie do katalogu o nazwie programy Wyjcie z katalogu o jeden poziom. Wyjcie ze wszystkich katalogów, a do katalogu głównego Tworzenie nowego katalogu. md test Kasowanie (usuwanie) katalogu (katalog musi by pusty - bez plików i podkatalogów) Rd test katalog o nazwie test został usunity z dysku Kasowanie (usuwanie) pliku del list.doc plik o nazwie list (i rozszerzeniu.doc) został usunity z dysku.

PIiUK Paweł Gmys wicz. 2 strona 3 z 19 copy move type nazwa.txt copy con nazwa.txt edit copy [skd i co] [dokd] Najlepiej jest znajdowa si w katalogu, gdzie znajduj si pliki do skopiowania (nie trzeba wtedy pisa cieki dojcia). copy list.doc A: Plik list.doc z biecego katalogu został skopiowany na dyskietk. Mona równie uywa symboli wieloznacznych *,?. np. Copy *.txt C:\teksty Wszystkie pliki z biecego katalogu, które maj rozszerzenie.txt zostały skopiowane do katalogu TEKSTY (na dysku C). move [skd i co] [dokd] 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 biecego katalogu został przeniesiony na dyskietk. Istnieje ju tylko jeden egzemplarz tego pliku - na dyskietce. Wywietlenie na ekranie zawartoci pliku tekstowego np. type list.txt Tworzenie pliku tekstowego. Po wpisaniu tego polecenia i naciniciu klawisza Enter mona zacz wpisywanie tekstu. Aby zakoczy wpisywanie tekstu naley nacisn kombinacj klawiszy CTRL+Z i ENTER. Uruchomienie prostego edytora tekstu - mona tworzy i edytowa ju utworzone pliki tekstowe. Samo polecenie edit uruchamia edytor tekstowy z przygotowanym pustym, nienazwanym dokumentem. Polecenie edit nazwa_pliku.txt: - jeeli podany plik nie istnieje, tworzy pusty, nazwany plik, gotowy do wpisywania tekstu. - jeeli plik istnieje, otwiera go, mona dokonywa zmiany. tree Wywietlenie listy katalogów (i podkatalogów) w graficznej postaci drzewa katalogów. tree /f Wywietlenie katalogów, podkatalogów i plików w graficznej postaci drzewa katalogowego. vol label Wywietlenie etykiety dysku. Zmiana etykiety dysku label nowa_nazwa (nie wicej ni 8 znaków w nazwie) attrib Atrybuty plików. attrib nazwa_pliku - wywietla jakie atrybuty ma dany plik attrib +x nazwa_pliku - nadanie plikowi atrybutu attrib -x nazwa_pliku - odwołanie nadania plikowi atrybutu moliwe atrybuty (wstaw tam, gdzie x): r - read only - tylko do odczytu (nie jest moliwy zapis zmian w tego typu plikach) h - hidden - plik ukryty (nie wywietla si w licie plików) s - system - plik systemowy (zawiera dane, które okrelaj ustawienia systemu) a - archive - plik archiwalny

PIiUK Paweł Gmys wicz. 2 strona 4 z 19 prompt Zmiana wygldu znaku zachty (znaku gotowoci). prompt [tekst - opcjonalnie] [symbole] SYMBOL $B $Q = $L < $G > $T godzina $D data WYGLD W ZNAKU ZACHTY $V wersja systemu operacyjnego $N litera biecego dysku $P litera biecego dysku :\ $_ np. Polecenie: PROMPT $P$G Wywietli: C:\> przeniesienie kursora do nastpnego wiersza Polecenie: PROMPT wpisz komende $G Wywietli: wpisz komend > 1. Z katalogu SYSTEM znajdujcego 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 wywietl dat. 4. Sprawd, jaka wersja systemu operacyjnego znajduje si w komputerze. 5. Wywietl tylko te pliki, których nazwa koczy 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 uywaj polecenia deltree) C:\A> 7. Znajdujesz si w katalogu WINDOWS. Wywietl struktur podkatalogów i plików znajdujcych si w tym katalogu. 8. Znajdujesz si na dysku C. Na dysku A: Sprawd atrybuty wszystkich plików jeli s). 9. Zmie "znak zachty" na nastpujcy (wyrazy pogrubione to dane wywietlane przy uyciu $; wszystkie znaczki naley uzyska równie przy uyciu znaku $) a) bieca litera dysku > b) dzisiejsza data = data polecenie c) wersja systemu operacyjnego <=> d) a teraz wró do standardowego wygldu "znaku zachty" 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 uywajc jednego polecenia. 12. Jakie polecenie słuy do: a) kasowania katalogów b) kasowania plików 13. Wywietl 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) umoliwia wykonanie dowolnego cigu polece systemu MS- DOS. Z punktu widzenia systemu operacyjnego plikiem wsadowym jest kady plik, którego nazwa posiada rozszerzenie bat. Plik wsadowy, aby mógł by poprawnie wykonany (zinterpretowany) powinien zawiera cig polece systemu, z których kade powinno by umieszczone w osobnej linii pliku. Mog to by polecenia wewntrzne, polecenia zewntrzne (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 Nacinij jaki klawisz... PAUSE Aby wykona powyszy plik naley nada mu nazw z rozszerzeniem bat (moe by Info.bat) a nastpnie w katalogu biecym wpisa komend bdc nazw pliku wsadowego, czyli odpowiednio: C:\TEMP>info Interpreter wykonuje sekwencyjnie jedno po drugim wszystkie polecenia pliku wsadowego w kolejnoci ich wystpowania. 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 "Nacinij jaki klawisz, aby kontynuowa..." i zatrzymaniu wykonywania pliku wsadowego do czasu nacinicia dowolnego klawisza. Polecenie ECHO Jeeli wykonamy plik wsadowy test.bat zawierajcy 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. <DIR> 00.08.04 20:42... <DIR> 00.08.04 20:42.. TEST BAT 3 00.08.04 20:43 test.bat 1 plik(ów) 3 bajtów 2 katalog(ów) 271 859 712 bajtów wolnych C:\BATCH>_ Pierwsza linia zawiera tekst wydanej komendy. W linii drugiej interpreter wypisał tre polecenia wystpujcego w pliku wsadowym. Kolejne linie zawieraj wynik wykonanania polecenia DIR. Przykład ten pokazuje sposób postpowania podczas wykonywania pliku wsadowego - command.com czyta lini pliku wsadowego, wypisuje j na ekranie a nastpnie uruchamia odpowiedni program lub polecenie wewntrzne. Po zakoczeniu wykonywania polecenia proces si powtarza - odczyta kolejn lini, wypisze jej tre na ekranie a nastpnie uruchomi odpowiedni program, itd. Polecenie ECHO mona wyda z argumentem ON lub OFF. Instrukcja ECHO OFF powoduje wyłczenie wypisywania treci polece wystpujcych w pliku wsadowym. Od momentu wykonania tej instrukcji command.com nie bdzie wypisywał treci przetwarzanych komend a jedynie ich wyniki. Bardzo czsto instrukcj powysz umieszcza si w pierwszej linii pliku wsadowego. Uycie argumentu ON powoduje oczywicie włczenie wypisywania treci polece. Z analizy wydruku dowolnego pliku wsadowego zawierajcego w pierwszej linii komend ECHO OFF mona wywnioskowa, e wyłczone t komend wypisywanie treci polece obowizuje dopiero od linii drugiej - command.com zawsze wypisze tre pierwszej komendy pliku, czyli ECHO OFF. Aby tego unikn naley lini t poprzedzi znakiem '@' ("at") - linia pliku, która poprzedzona jest tym znakiem nigdy nie jest wywietlana na ekranie. Podsumowujc: istniej dwie metody całkowitego wyłczenia wypisywania treci komend pliku wsadowego: 1. umieszczenie w pierwszej linii komendy @ECHO OFF, 2. rozpoczynanie kadej linii pliku znakiem '@'. Instrukcja warunkowa (1) Niemal wszystkie wykonywane programy podczas pracy s "zmuszane przez uytkownika" do podejmowania pewnych decyzji. Program niejednokrotnie musi decydowa jakiego rodzaju informacje powinien wywietli, czy w danym momencie zareagowa na klawisze naciskane na klawiaturze, jak operacj naley wykona, czy zakoczy swoje działanie, itp. Do podejmowania w programach tego typu decyzji słuy instrukcja warunkowa. W pliku wsadowym instrukcja ta moe 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 jeli uyto NOT). Rozwamy dwie nastpujce 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: jeeli istnieje plik lista.txt, to usu ten plik. Efekt kocowy obu polece jest taki sam - zostanie usunity plik lista.txt. Pomidzy tymi poleceniami istnieje jednak pewna rónica; o poleceniu [2] mona by powiedzie, e "jest lepsze". Otó polecenie DEL usuwa podany plik i nie wywietla adnych komunikatów o usuniciu pliku, jeeli jednak usuwany plik nie istnieje, to wykonanie polecenia jest niemoliwe - zostanie wówczas wywietlony komunikat o błdzie - mimo przekierowania wyjcia polecenia do pliku pustego komunikat ów pojawi si na ekranie. Taka sytuacja nie bdzie miała miejsca w przypadku polecenia [2]: to polecenie bowiem wykona komend DEL lista.txt tylko wówczas, gdy plik lista.txt istnieje - jeeli w katalogu biecym pliku nie ma, to komenda jest pomijana i na tym koczy si wykonanie całej instrukcji warunkowej. Polecenie DEL mona tutaj zastpi inn komend, np: [1] TYPE lista.txt [2] IF EXIST lista.txt TYPE lista.txt W tym wypadku mamy doczynienia z t sam sytuacj: jeeli nie istnieje plik lista.txt, to polecenie [1] wypisze komunikat o błdzie - nie zrobi tego natomiast polecenie [2]. Etykiety i instrukcja skoku GOTO Rozwaymy przkład troch trudniejszy. Naley 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 Jeeli w katalogu biecym istnieje plik lista.txt zostanie wykonane polecenie utworzenia jego kopii pod nazw lista.bak. Konstruujc powyszy plik naley przewidzie jeszcze jedn sytuacj: w katalogu biecym moe równie istnie plik o nazwie lista.bak. Powstaje wówczas pytanie "co w tej sytuacji zrobi polecenie COPY?" - albo wywietli komunikat o błdzie i nie wykona kopiowania, albo te skopiuje plik ródłowy usuwajc przy tym zawarto istniejcego pliku docelowego - w pewnych sytuacjach obie z tych moliwoci mog okaza si niezadowalajce. Istniej oczywicie metody rozwizania tego problemu za pomoc opcji polecenia COPY, warto jednak pamita, e opcje polece czsto zmieniaj si w rónych wersjach interpretera command.com i komenda, która poprawnie wykonuje si na naszym komputerze moe w innej wersji interpretera zosta uznana za niepoprawn z powodu błdnej opcji polecenia.

PIiUK Paweł Gmys wicz. 2 strona 8 z 19 Powyszy przykład demonstruje problem wykonania komendy tylko wówczas, gdy spełnione s dwa lub wicej okrelonych warunków - problemy tego typu rozwizuje si na ogół za pomoc instrukcji skoku GOTO. Instrukcja: :Etykieta definiuje tzw. etykiet w pliku wsadowym. Etykieta to inaczej mówic słowna nazwa linii pliku, umieszczajc instrukcj etykiety nazywamy lini pliku podan po znaku ':' nazw. Nazwa etykiety powinna by jednym słowem nie zawierajcym odstpów (mona połaczy słowa znakiem '_') i powinna rozpoczyna si tu za znakiem ':', nie naley rozdziela nazwy i znaku ':' odstpami. Podczas wykonywania pliku wsadowego interpreter pomija linie pliku zawierajce etykiety (podobnie jak ma ty miejsce w przypadku polecenia komentarza REM), instrukcji tej nie wykonuje si, słuy 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] @ECHO OFF [2] IF EXIST lista.txt GOTO Usuwaj [3] ECHO Nie ma takiego pliku... [4] GOTO Koniec [5] :Usuwaj [6] ECHO Usuwanie pliku lista.txt... [7] DEL lista.txt > NUL [8] ECHO Wykonane... [9] :Koniec W linii [2] nastpuje sprawdzenie istnienia w katalogu biecym pliku lista.txt. Jeeli plik istnieje wykonana zostanie komenda GOTO Usuwaj - nastpi przejcie (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 nastpnej [6]. Wypisany zostanie tekst "Usuwanie pliku lista.txt...", nastpnie interpreter wykona lini [7] usuwajc plik lista.txt, wypisze tekst "Wykonane..." i zakoczy wykonywanie pliku na ostatniej linii [9]. Podczas wykonywania linii [2] moe si oczywicie okaza, e katalog biecy nie zawiera pliku lista.txt. Instrukcja warunkowa wówczas pominie podan komend GOTO Usuwaj i wykonana zostanie komenda nastpna w linii [3] - wypisanie tekstu "Nie ma takiego pliku..." oraz komenda w linii [4] - przejcie do etykiety Koniec. Warto jeszcze zwróci uwag na lini [4]. Brak tej linii spowodowałby wypisanie tekstu "Nie ma takiego pliku..." a nastpnie wykonanie komendy w liniach [6], [7] i [8], czyli pomimo nieistnienia pliku byłyby wykonywane polecenia zwizane z jego usuniciem. Plik wsadowy wykonujcy wspomniane wczeniej 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 Kopiowanie lista.txt na lista.bak... COPY lista.txt lista.bak > NUL ECHO Wykonane... GOTO 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 mona uruchamia z argumentami. Do poszczególnych argumentów pliku mona si od odwoływa za pomoc symboli %1, %2,..., %9, które reprezentuj odpowiednio pierwszy, drugi,..., dziewity 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 naley uruchomi z argumentem bdcym nazw pliku - jego brak moe spowodowa błd wykonania i w konsekwencji komunikat o wymaganym argumencie. Interpreter podczas analizy linii pliku wszystkie wyraenia postaci %1, %2,..., %9 zastpuje faktycznymi argumentami podanymi w linii komend: C:\TEMP>mydel.bat lista.txt Usuwanie pliku lista.txt... Wykonane... C:\TEMP>_ Wida powyej, e w linii drugiej interpreter zamiast symbolu %1 wypisał faktycznie podany argument w wywołaniu lista.txt. Jeeli plik wsadowy uruchamiamy bez argumentów to wszystkie wyraenia %1, %2,..., %9 s napisami pustymi (napis nie zawierajcy adnych znaków). Jeeli w linii komend wystpuje N argumentów, to wyraenia %1,..., %N reprezentuj podane argumenty, wyraenia %N+1, %N+2,... s natomist napisami pustymi. Nasuwa si proste pytanie, czy plik wsadowy mona przetworzy z dziesicioma lub wicej argumentami. Odpowied w zasadzie jest twierdzca, 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 due i małe litery nie s rozrónialne, w przypadku porównywania napisów brane jest to pod uwag. Tak wic napisy "Lista.txt" oraz "lista.txt" wcale nie s równe. Warto pamita, e bezpieczniej jest podawa porównywane napisy w cudzysłowie oraz pomidzy napisami a znakiem '=' umieci znak odstpu - jego brak moe spowodowa błd wykonania pliku. Ta posta instrukcji warunkowej posłuy nam przede wszystkim do sprawdzania iloci podanych argumentów. Korzystajc o obu postaci instrukcji moemy napisa ostateczn wersj pliku wsadowego mydel.bat usuwajcego plik podany jako argument, przyjmujc przy tym nastpujce załoenia: plik wsadowy moe by uruchomiony z argumentem '/?' - naley wówczas wywietli informacj o przeznaczeniu oraz opis składni, uruchomienie pliku z jednym argumentem bdcym nazw pliku powoduje jego usunicie lub wypisaniu komunikatu o błdzie, jeeli plik został uruchomiony z dwoma lub wiksz iloci argumentów, to jeli pierwszym z nich jest '/?', to wywietlamy informacj o przeznaczeniu i składni, jeeli 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 "%1" == "/?" GOTO Informacja IF "%1" == "" GOTO BrakArgumentu IF NOT "%2" == "" GOTO ZbytWieleArgumentow IF 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 przyjtych załoe wynika, e dopuszczalne s wywołania: "mydel /?", "mydel /? /?", "mydel /? lista.txt", "mydel /? lista.txt lista.bak" - dopuszczalne jest kade wywołanie, w którym pierwszy argument jest równy "/?". W zwizku z tym w pliku wsadowym w pierwszej kolejnoci sprawdzamy wystpienie tego włanie 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 jeeli jest to jedyny argument lub wypisujemy komunikat o błdzie gdy podano wicej ni jedn nazw pliku. Ilo podanych argumentów, a właciwie to czy argument jest jeden, sprawdzamy porównujc argument drugi %2 z napisem pustym. Ostatnie IF dotyczy ju tylko przypadku: podano dokładnie jeden argument bdcy nazw pliku - pozostaje wic sprawdzi czy podany plik istnieje. Instrukcja CALL Jak wspomniano na pocztku w pliku wsadowym mona uywa dowolnych polece wewnetrznych i programów wykonywalnych (com i exe). Polecenie pliku wsadowego nie moe 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łoonej "poniej" w pliku wsadowym. Istnieje moliwo przeniesienia wykonywania pliku do linii wczeniejszej, czyli "powyej" - tego typu konstrukcj, tzn. etykiet oraz wystpujc poniej instrukcj skoku do tej włanie etykiety nazywamy ptl. Ptle czsto stosuje si w połczeniu z instrukcj SHIFT. Polecenie SHIFT wykonuje tzw. przesunicie argumentów, tzn. argument pierwszy %1 zastpowany jest przez argument drugi %2, argument drugi %2 zastpowany jest przez argument trzeci %3, itd. Ogólnie: argument %N zastpowany 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 moliwoci odwołania si do tego argumentu. Demonstruje to poniszy przykład: @ECHO OFF ECHO Arg1=[%1] Arg2=[%2] Arg3=[%3] Arg4=[%4] SHIFT ECHO Arg1=[%1] Arg2=[%2] Arg3=[%3] Arg4=[%4] SHIFT ECHO Arg1=[%1] Arg2=[%2] Arg3=[%3] Arg4=[%4] SHIFT ECHO Arg1=[%1] Arg2=[%2] Arg3=[%3] Arg4=[%4] SHIFT ECHO Arg1=[%1] Arg2=[%2] Arg3=[%3] Arg4=[%4] SHIFT ECHO Arg1=[%1] Arg2=[%2] Arg3=[%3] Arg4=[%4] Tak wyglda wykonanie pliku z picioma 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 wyraenie %1 reprezentuje ju napis list2.txt, wyraenie %2 napis list3.txt i tak dalej. Po wykonaniu drugim wyraenie %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 pitym wywołaniu wszystkie argumenty maj warto pust!. Ogólnie: jeeli 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, kady 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 Jeli pierwszy argument jest równy "/?" zostanie wywietlona pomoc. W pozostałych przypadkach wykonywana jest ptla od etykiety Start do instrukcji skoku GOTO Start.

PIiUK Paweł Gmys wicz. 2 strona 13 z 19 Najwaniejsz instrukcj kadej ptli jest instrukcja przerwania ptli, czyli przeniesienia wykonywania pliku poza ptl. 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 osignie warto napisu pustego. Poniewa wewntrz ptli wystpuje polecenie SHIFT w którym momencie skocz si argumenty pliku i wykonywanie ptli zostanie zakoczone. Konstruujc ptl naley zawsze stworzy warunki umoliwiajce jej zakoczenie. Nietrudno przewidzie jaki efekt mona osign po usuniciu z powyszego pliku instrukcji SHIFT. Wówczas podczas wykonywania ptli argumenty nie ulegałyby adnym zmianom co oznacza, e ptla mogłaby si nigdy nie skoczy. Ten sam skutek przyniosłoby usunicie instrukcji wyjcia z ptli 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 czsto "zaptleniem lub powieszeniem programu". Jeeli uywamy w pliku wsadowym ptli wskazane jest przedsiwzicie pewnych rodków ostronoci. Otó wykonanie pliku wsadowego mona przerwa naciskajc klawisz Ctrl+C. Wówczas command.com moe zareagowa na nacinity klawisz i zakoczy wykonywanie pliku, aby jednak było to moliwe naley ustawi wykrywalno tego klawisza poleceniem: BREAK ON Polecenie to mona wyda na klawiaturze, albo umieci w pliku wsadowym przed rozpoczciem ptli - najlepiej na pocztku pliku. Samo polecenie BREAK bez argumentu ON lub OFF wywietla jedynie stan reakcji na klawisz Ctrl+C. Warto pamita: NIEOMYLNO = FORMAT C: co mniej wicej znaczy tyle, e kres wiary we własne umiejtnoci zawsze idzie w parze z utrat czci dysku. Ptle wykorzystujemy na ogół, gdy okrelon czynno trzeba wykona na wikszej liczbie liczbie plików. Majc do dyspozycji plik wsadowy mydel.bat usuwajcy jeden podany plik, zadanie polegajce na usuniciu wszystkich plików bdcych 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 usuwajcy 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" naley dopisa samodzielnie.

PIiUK Paweł Gmys wicz. 2 strona 14 z 19 Instrukcja warunkowa (3) Kiedy program koczy swoje działanie ma moliwo poinformowania systemu operacyjnego o stanie swojego zakoczenia. Przekazana informacja jest dosy uboga albowiem moe by zaledwie nieujemn liczb całkowit, ale o tym, e w wiecie komputerów jedna liczba moe by informacj bardzo obszern nikogo przekonywa nie trzeba. Liczb t nazywamy kodem wyjcia programu. Z moliwoci tej programy nie zawsze korzystaj i czsto program nie pozostawia po sobie adnej informacji - wówczas system operacyjny traktuje taki stan zakoczenia jako poprawny i przyjmuje, e zakoczony program pozostawił po sobie kod zero (czsto mówimy te, e program zakoczył si z kodem zero). Nie oznacza to wcale, e liczby róne od zera oznaczaj błdne zakoczenie programu; jest to czsto przyjmowana w informatyce reguła na mocy której liczba zero oznacza poprawne wykonanie okrelonej operacji. Instrukcja warunkowa w trzeciej postaci słuy włanie do sprawdzania stanu zakoczenia ostatnio wykonanego programu lub komendy: IF ERRORLEVEL kod_wyjcia komenda albo IF NOT ERRORLEVEL kod_wyjcia komenda Kod_wyjcia 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 wyjcia wikszy lub równy podanej liczbie (w przypadku uycia NOT mniejszy od podanej liczby). Z tej postaci instrukcji warunkowej korzysta bdziemy wyłcznie przy sprawdzaniu kodu wyjcia 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 nastpujca: CHOICE [/C:odpowiedzi] [/N] [/T:Z,XY] [tekst] Co robi polecenie CHOICE? Po wydaniu komendy CHOICE bez argumentów na ekranie zostanie wywietlony napis "[T,N]?" a nastpnie program bdzie czekał do momentu nacinicia jednej z liter 'T' lub 'N'. Wydanie polecenia w postaci CHOICE /C:12A* spowoduje wypisanie tekstu "[1,2,A,*]?" i oczekiwanie programu na nacinicie którego z podanych znaków. Jeeli podamy okrelony tekst, to program wypisze go a nastpnie wywietli list dopuszczalnych odpowiedzi. Uycie opcji "/N" spowoduje, e nie zostanie wywietlona lista odpowiedzi, opcja "/T" okrela odpowied domyln 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 nastpnie program bdzie czekał na nacinicie jednego z klawiszy A, B, X przez maksymalnie 5 sekund - niewybranie adnej z odpowiedzi jest równoznaczne z wybraniem odpowiedzi domylnej, czyli odpowiedzi X. Program po wyborze odpowiedniego klawisza bd po upływie dopuszczalnego czasu koczy

PIiUK Paweł Gmys wicz. 2 strona 15 z 19 swoje działanie zwracajc do systemu operacyjnego kod wyjcia, który jest numerem odpowiedzi na podanej licie, 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 bdzie potrafił uruchomi jeden z trzech programów w zaleno- ci od wyboru uytkownika, np. Norton Commander lub Windows( Raczej nieuywane obecnie w tej postaci ale mona zastosowa do uruchomienia ronych systemów operacyjnych) @ECHO OFF :Start CLS ECHO _ ECHO _ ECHO [ 1 ]. Norton Commander ECHO [ 2 ]. Turbo Pascal ECHO [ 3 ]. Windows ECHO [ Q ]. Zakocz 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 zawierajce polecenie ECHO z kresk podkrelenia naley wpisa w nastpujcy sposób: po wpisaniu słowa ECHO naley wpisa klawisz spacji a nastpnie nacisn i przytrzyma klawisz Alt i przy wcinitym klawiszu Alt na klawiaturze numerycznej (z prawej strony) wpisa kod znaku 255 po czym mona 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 dostpu musz oczywicie by poprawne - mona je nawet zmieni na cieki do innych programów. Zwrómy uwag na kolejno sprawdzania kodu wyjcia polecenia CHOICE. Instrukcje warunkowe porównuj kod wyjcia od wartoci najwikszej moliwej czyli 4 w dół do wartoci przedostatniej 2 - pominicie wszystkich IF jest równowane z wyborem odpowiedzi pierwszej. Taki sposób sprawdzania wartoci kodu jest konsekwencj sposobu wykonywania instrukcji warunkowej - jeeli w pierwszej instrukcji IF umiecilibymy kod 2, to spełnienie tego warunku mówiłoby tylko tyle, e wybrano odpowied 2, 3 lub 4. Mona przyj, e sprawdzanie kodu wyjcia zawsze wykonujemy w ten sam sposób od wartoci najwikszych

PIiUK Paweł Gmys wicz. 2 strona 16 z 19 do najmniejszych - cho oczywicie mona wykona to inaczej. Pozostaje tylko doda, e uruchomienia systemu Windows podczas pracy Windows jest raczej niewykonalne i zakoczy si odpowiednim komunikatem. Mona 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 uruchamiajce powyszy 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 zmieniajcy nazw pliku. Obsług błdów oraz informacje o przeznaczeniu naley uzupełni samodzielnie. @ECHO OFF BREAK ON :Usuwaj IF NOT EXIST %2 GOTO MoznaZmienic CHOICE /C:TN "Plik %2 ju istnieje. Usun istniejcy plik " IF ERRORLEVEL 2 GOTO Koniec DEL %2 > NUL :MoznaZmienic ECHO Przenoszenie %1 na %2 REN %1 %2 > NUL GOTO Koniec :Koniec Przejcie do etykiety Usuwaj powinno nastpi w sytuacji gdy podano dwa argumenty bdce nazwami plików i argument pierwszy jest nazw istniejcego pliku. Wówczas jeeli nie istnieje plik podany jako drugi argument, to zmieniamy nazw pliku, w przeciwnym wypadku zadajemy pytanie czy usun istniejcy plik. Po odpowiedzi negatywnej przechodzimy na koniec pliku wsadowego, w przypadku odpowiedzi pozytywnej usuwamy istniejcy plik i wykonujemy zmian nazwy. Instrukcja iteracyjna FOR Instrukcje iteracyjne (powtarzajce, zwane te ptlami) słu w jzykach programowania do wielokkrotnego wykonywania podobnych czynnoci. Ogólnie dzieli si instrukcje iteracyjne na ptle o znanej lub niemoliwej do przewidzenia z góry liczbie powtórze. Sformułowanie "o znanej liczbie powtórze" wymaga pewnego wyjanienia. Przez znan ilo iteracji rozumie si tu ilo znan nie w momencie pisania programu lub pliku wsadowego, tylko ilo znan w momencie rozpoczcia wykonywania ptli. I tak na przykład: jeeli ptla zostanie powtórzona tyle razy ile plików zawiera katalog biecy, to mimo i nie moemy przewidzie ile plików bdzie zawierał katalog traktujemy t ptl jako ptl o znanej liczbie powtórze - liczba t bdzie bowiem znana w momencie rozpoczynania ptli. Równie omówiony wcze- niej przykład pliku wsadowego, który usuwał wszystkie pliki podane jako argumenty jest przykładem ptli o znanej liczbie powtórze - plik mona uruchomi z kad liczb argumentów, niemniej jednak liczba ta zawsze jest znana w momencie uruchomienia pliku wsadowego. A oto przykład ptli o niemoliwej 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 ptli nastpuje w momencie nacinicia klawisza 'N' - nie mona z góry przewidzie ile razy uytkownik wybierze odpowied 'T'. Instrukcja iteracyjna FOR pliku wsadowego jest ptl o znanej liczbie powtórze i nastpujcej składni: FOR %%X IN (lista) DO komenda Argument lista jest obowizkowy i zawiera pooddzielane znakami odstpu nazwy plików - w nazwach tych mog wystpowa znaki wieloznaczne '?' i '*'. Po znakach '%%' pojemy tzw. zmienn - odpowiednik niewiadomej w matematyce. Zmienna ta bdzie kolejno przybiera wszystkie moliwe wartoci sporód wartoci podanych na licie (lista). Dla kadej moliwej wartoci zmiennej X zostanie wykonane polecenie komenda. Rozwamy przykład: [1] FOR %%A IN (1 2 3) DO DIR [2] FOR %%K IN (zadanie zadanie.bat zadanie.bak) DO DIR Kada z powyszych instrukcji przyniesie ten sam efekt - trzy razy zostanie wykonane polecenie DIR. W przykładzie [1] zmienna A przybierze (otrzyma) warto "1" a nastepnie nastpi wykonanie polecenia DIR. Po wykonaniu komendy zmienna A otrzyma warto "2" i ponownie nastpi wykonanie komendy. po jej zakoczeniu zmienna A otrzyma warto "3" i zostanie wykonana komenda. Na tym zakoczy si wykonywanie polecenia FOR. W przykładzie [2] bdzie dokłdnie tak samo z t tylko rónic e zmienna bdzie przyjmowa wartoci "zadanie", "zadanie.bat" oraz "zadanie.bak". Odpowied na pytanie po co zmienna przyjmuje wartoci z listy staje si oczywista jeli powiemy, e wyraenie %%X moe wystpowa w treci podanej komendy i reprezentuje aktualn warto zmiennej X, podobnie jak %1 reprezentuje pierwszy argument pliku wsadowego. Tak wic, wykonanie polecenia: FOR %%A IN (1 2 3 4 5 6 7 8 9 0) DO ECHO Warto zmiennej = %%A spowoduje wypisanie dziesiciu linii zawierajcych tekst "Warto zmiennej = " oraz odpowiedni cyfr z listy. Polecenie FOR %%A IN (*.txt *.bak) DO COPY %%A C:\TEMP skopiuje wszystkie pliki z katalogu biecego z rozrzerzeniami txt lub bak do podanego katalogu C:\TEMP.

PIiUK Paweł Gmys wicz. 2 strona 18 z 19 Zadania do samodzielnego rozwizania Wszystkie pliki wsadowe powinny działa we wszystkich moliwych przypadkach zwizanych z istnieniem plików. Naley równie zadba o to, aby podczas wykonywania plików wywietlane 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. Korzystajc m.in. z polece find oraz sort napisa plik wsadowy mydir.bat, który wy- wietli zawarto katalogu biecego. Na wydruku powinny by widoczne tylko pliki i katalogi. Wydruk powinien zawiera w pierwszej kolejnoci list plików a nastpnie list katalogów. Zarówno pliki jak i katalogi naley posortowa alfabetycznie. Nie wolno korzysta z adnych opcji polecenia dir, mona natomiast skorzysta z tymczasowych plików pomocniczych. 5. Napisa plik wsadowy mycopy.bat słucy do tworzenia kopii pliku pod inn nazw, przyjmujc nastpujce załoenia: o plik działa tylko w przypadku gdy został uruchomiony z dwoma rónymi argumentami, o jeeli plik o takiej nazwie jak nazwa kopii ju istnieje, to nie wykonujemy kopiowania. 6. Napisa plik wsadowy myren.bat słucy do zmiany nazwy na nazw podan, przyjmujc nastpujce załoenia: o plik działa tylko w przypadku gdy został uruchomiony z dwoma argumentami, o jeeli oba argumenty s takie same, to jeli plik istnieje nie wykonujemy adnych czynnoci, jeli natomiast pliku nie ma wypisujemy komunikat o błdzie, o jeeli plik o takiej nazwie jak nowa nazwa pliku ju istnieje, to wypisujemy komunikat o błdzie. 7. Napisa plik wsadowy mycopy.bat słucy do tworzenia kopii pliku pod inn nazw, przyjmujc nastpujce załoenia: o plik moe by uruchomiony z dowoln iloci argumentów, o jeeli nie podano argumentów wypisujemy składni, o jeeli pierwszy argument jest równy "/?" wypisujemy informacj o przeznaczeniu i składni, o jeeli 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 wicej ni dwa, gdy podano jeden argument lub gdy argumenty s dwa, ale takie same) wypisujemy komunikat o błdzie, o jeeli plik o takiej nazwie jak nazwa kopii ju istnieje, to nie wykonujemy kopiowania. 8. Napisa plik wsadowy myren.bat słucy do zmiany nazwy pliku pod podan, przyjmujc nastpujce załoenia: o plik moe by uruchomiony z dowoln iloci argumentów, o jeeli nie podano argumentów wypisujemy składni, o jeeli pierwszy argument jest równy "/?" wypisujemy informacj o przeznaczeniu i składni, o jeeli 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 o o ku (gdy podano wicej ni dwa, gdy podano jeden argument lub gdy argumenty s dwa, ale takie same) wypisujemy komunikat o błdzie, jeeli plik o takiej nazwie jak nazwa kopii ju istnieje, to usuwamy go, a nastpnie wykonujemy zmian nazwy pliku, jeeli argumenty s dwa i s takie same oraz plik istnieje, to efekt powinien by taki, jakgdyby zmieniono nazw pliku.