• Nie Znaleziono Wyników

Procedury systemowe w systemie DOS

N/A
N/A
Protected

Academic year: 2021

Share "Procedury systemowe w systemie DOS"

Copied!
48
0
0

Pełen tekst

(1)

Procedury systemowe w systemie DOS

Bibliografia:

System operacyjny MS-DOS 4.0/5.0, M. Jankowski i A. Marciniak

Windows XP. Komendy i polecenia.

Praktyczne przykłady, P. Czarny

(2)

Procedurą systemową (lub krótko procedurą) – nazywamy sekwencję poleceń systemu

operacyjnego, umieszczoną w zbiorze tekstowym i przeznaczoną do wielokrotnego wykorzystania.

Umieszczenie sekwencji

poleceń w zbiorze ma na celu uniknięcie konieczności

wielokrotnego wpisywania tych samych poleceń – oszczędność czasu i uniknięcie błędów przy wpisywaniu

(3)

Instrukcje warunkowe

(4)

Instrukcja warunkowa (if) – służy do sprawdzenia pewnego warunku i uzależnienia od niego wykonanie określonego

polecenia.

Uwaga:

W procedurach

systemowych instrukcja warunkowa ( if ) służy do sprawdzenia tylko

jednego warunku i nie wolno jej

zagnieżdżać (tzn. w obrębie jednej instrukcji if nie może kolejna

instrukcja warunkowa). Ponadto całe zdanie z instrukcją if musi mieścić się w pojedynczym wierszu.

(5)

Składnia (definicja) instrukcji warunkowej:

if warunek polecenie

lub

if not warunek polecenie

(6)

Warunki sprawdzane za pomocą instrukcji if

identyczność dwu łańcuchów znakowych:

if %1 == ala type ala.txt

Jeśli parametr numer 1 ma postać identyczną z łańcuchem ala, to nastąpi wyświetlenie treści pliku ala.txt

if %pocz% == ola echo czesc ala

Jeśli zmienna %pocz% ma postać identyczną z łańcuchem ola, to na ekranie pojawi się napis czesc ala

if (%1) == () echo brak parametru

Jeśli parametr numer 1 jest równy łańcuchowi pustemu, to na ekranie pojawi się komunikat po słowie echo – brak parametru

if not %pocz% == ola type ala.txt

Jeśli zmienna %pocz% jest różna od łańcucha ola, to zostanie wyświetlona zawartość pliku ala.txt

(7)

Warunki sprawdzane za pomocą instrukcji if

istnienie zbioru dyskowego o danej nazwie:

if exist %1 type %1

Jeśli istnieje zbiór o nazwie podanej parametrem numer 1, to zostanie wyświetlony na ekranie.

if not exist %1 echo brak poszukiwanego parametru

Jeśli nie istnieje zbiór o nazwie podanej parametrem numer 1, to zostanie wyświetlony napis brak poszukiwanego parametru

testowanie wartości wskaźnika błędu errorlevel, która jest generowana przez polecenie systemowe:

if errorlevel 1 echo wystapil blad

Jeśli wartość kodu wyjściowego polecenia (wymienionego wcześniej) jest równa 1, to na ekranie pojawi się napis wystapil blad

(8)

Instrukcje warunkowe Instrukcje warunkowe

ćwiczenia

ćwiczenia

(9)

Zadanie 1

Napisz procedurę, która pliki określone pierwszym parametrem przekopiuje z katalogu danego drugim

parametrem do katalogu danego trzecim parametrem.

@echo of

if (%1) == () goto koniec if (%2) == () goto koniec if (%3) == () goto koniec copy %2\%1 %3

:koniec

(10)

Zadanie 2

Napisz procedurę, która plikowi określonemu pierwszym parametrem /w katalogu danym drugim parametrem/ zmieni nazwę na nazwę daną trzecim parametrem.

@echo of

if (%1) == () goto koniec if (%2) == () goto koniec if (%3) == () goto koniec ren %2\%1 %3

:koniec

(11)

Zadanie 3

Napisz procedurę, która zaprezentuje działanie polecenia goto. Przebieg procedury ma być różny w zależności od liczby podanych parametrów w wierszu ją wywołującym. Należy podać komunikat o maksymalnej liczbie dopuszczalnych parametrów.

(12)

@echo off

if (%1) == () goto nic if (%2) == () goto jeden if (%3) == () goto dwa

echo UWAGA: procedura akceptuje maksymalnie dwa parametry goto koniec

:dwa

echo Parametr nr 1 : %1 echo Parametr nr 2 : %2 goto koniec

:jeden

echo Parametr nr 1 : %1 echo Parametr nr 2 : -- goto koniec

:nic

echo Parametr nr 1 : -- echo Parametr nr 2 : -- :koniec

(13)

Zadanie 4 3it

Napisz procedurę, która sprawdzi istnienie pliku

określonego pierwszym parametrem i jeśli istnieje – wypisze jego zawartość

@echo of

if exist %1 type %1

(14)

Zadanie 5

Napisz procedurę, która sprawdzi, czy zmienna pocz jest równa łańcuchowi ala, jeśli tak – to zostanie wypisany napis

pocz = ala

@echo on

if %pocz% == ala echo pocz=ala

(15)

Powtarzalność Powtarzalność

procedur

procedur

(16)

Instrukcja iteracyjna (for) – jest wykorzystywana do powtarzania poleceń w procedurach systemowych.

(17)

Składnia (definicja) instrukcji iteracyjnej:

for %%zmienna in (zbiór-logiczny) do polecenie

Podczas wykonywania instrukcji for, zmienna przyjmuje kolejne wartości ze zbioru logicznego i dla każdej z tych wartości jest wykonane polecenie.

Nazwa zmiennej musi być pojedynczą literą alfabetu, a elementy zbioru powinny być łańcuchami

alfanumerycznymi, oddzielonymi odstępami /spacjami/.

Polecenie może, ale nie musi wykorzystywać aktualną wartość zmiennej.

(18)

Powtarzalność Powtarzalność procedur

procedur - ćwiczenia - ćwiczenia

(19)

Zadanie 1

Napisz procedurę systemową wydającą pięciokrotnie sygnał dźwiękowy. Dźwięk spowoduje znak sterujący [ 7 ] – Alt.

for %%a in (1 2 3 4 5) do echo [ 7 ]

(20)

Zadanie 2

Napisz procedurę systemową tworzącą dziesięć kopii pliku ala.txt zawierających tekst Ala ma kota.

echo Ala ma kota >ala.txt

for %%a in (0 1 2 3 4 5 6 7 8 9) do copy ala.txt ala%%a.txt

(21)

Zadanie 3

Napisz procedurę systemową wykonującą pętle tyle razy ile wynosi wartość parametru podanego przy wywołaniu

procedury. Jako polecenie niech pojawia się napis:

wywołanie procedury.

(22)

@echo on

if (%1) == () goto niedobrze

for %%a in (1 2 3 4 5 6 7 8 9 10) do if %%a == %1 goto razy %%a goto niedobrze :razy10

echo wywolanie procedury goto koniec

:razy9

echo wywolanie procedury goto koniec

....

:razy1

echo wywolanie procedury goto koniec

:niedobrze echo UWAGA!

echo parametrem musi być liczba calkowita od 1 do 10 :koniec

(23)

Procedury z Procedury z nieokreśloną liczbą nieokreśloną liczbą

parametrów

parametrów

(24)

Instrukcja shift – jest wykorzystywana do powtarzania

„skoku” do etykiety w celu wykonania poleceń w procedury zawartych po etykiecie, do której został wykonany skok.

parametr %0 %1 %2 %3 %4

xxx a b c d

shift xxx b c d

shift xxx c d

shift xxx d

shift xxx pusta

(25)

Procedury z Procedury z

nieokreśloną liczbą nieokreśloną liczbą

parametrów parametrów

- ćwiczenia

- ćwiczenia

(26)

Zadanie 1

Napisz procedurę systemową wypisującą na ekranie napis „Moja procedura” w ilości wierszy określonych przez parametr podany przy wywołaniu procedury.

@echo off :start

if (%1) == () goto koniec echo Moja procedura shift

goto start :koniec

(27)

Zadanie 2

Napisz procedurę systemową dopisującą do piku zad5.dat dowolne słowa podane jako parametr przy wywołaniu procedury.

@echo off : start

if (%1) == () goto koniec echo %1>>zad5.dat

shift

goto start : koniec

(28)

Zadanie 3

Napisz procedurę, która tworzy plik o nazwie podanej przez parametr i zapisuje do niego tekst podany przez kolejny

parametr.

(29)

@echo off

echo Wciśnij jakikolwiek klawisz pause>>nul

if (%1) == () goto koniec1 if (%2) == () goto koniec2 set plik=%1

:petla shift

if (%1) == () goto end echo %1>>%plik%

goto petla :koniec1

echo Nie podales nazwy pliku goto end

:koniec2

echo Za malo parametrow :end

(30)

Zadanie 4

Napisz procedurę „atrybut”, która plikowi danemu pierwszym

parametrem znajdującemu się w katalogu danym drugim parametrem nada atrybuty dane następnymi parametrami.

(31)

@echo off

if (%1) == () goto koniec if (%2) == () goto koniec set x=%1

set y=%2 shift

shift :start

if (%1) == () goto koniec attrib +%1 %y%\%x%

shift

goto start : koniec

(32)

Zadanie 5

Napisz procedurę „kasuj”, która kasuje pliki dane parametrami procedury znajdujące się w katalogu ALA na dysku A:

@echo :start

if (%1) == goto koniec del C:\ALA\%1

shift

goto start :koniec

(33)

Zadanie 6

Napisz procedurę „dopisz”, która sprawdza istnienie pliku danego pierwszym parametrem w katalogu danym drugim parametrem. Jeżeli plik istnieje dopisuje do niego pozostałe parametry procedury, a jeżeli nie istnieje tworzy go i

dopisuje do niego pozostałe parametry procedury.

(34)

@echo off

if (%1) == () goto koniec if (%2) == () goto koniec set x=%1

set y=%2 shift

shift

if exist c:\%y%\%x% goto start : start

if (%1) == () goto koniec echo %1 >>c:\%y%\%x%

shift

goto start : koniec

(35)

Procedury systemowe Procedury systemowe

– zadania różne

– zadania różne

(36)

Napisz procedurę „plik”, która wyświetli zawartość pliku danego pierwszym parametrem z katalogu danego drugim parametrem.

Zadanie 1

Zadanie 2

Napisz procedurę „atrybuty”, która wyświetli atrybuty plików danych pierwszym parametrem z katalogu danego drugim parametrem.

Zadanie 3

Napisz procedurę, która kopiuje pliki dane pierwszym

parametrem z katalogów danych pozostałymi parametrami do katalogu MOJ na dysku C.

(37)

Napisz procedurę, która z katalogu będącego pierwszym parametrem przekopiuje do katalogu będącego drugim parametrem pliki określone następnymi parametrami.

Zadanie 4

Zadanie 5

Napisz procedurę, która utworzy na dysku katalog roboczy, a w nim zapisze dane parametrami procedury.

Zadanie 6

Napisz procedurę ,która dopisze do pliku cos.txt wszystkie parametry tej procedury.

(38)

Utwórz plik wsadowy dopisujący do pliku imie.txt nazwisko po wybraniu opcjonalnie klawisza (A) lub zakończy

procedurę po wybraniu klawisza (B).

Zadanie 7

(39)

Zadanie 1

Napisz procedurę „plik”, która wyświetli zawartość pliku danego pierwszym parametrem z katalogu danego drugim parametrem.

@echo off

if (%1) == () goto koniec if (%2) == () goto koniec type %2\%1

: koniec

(40)

Zadanie 2

Napisz procedurę „atrybuty”, która wyświetli atrybuty plików danych pierwszym parametrem z katalogu danego drugim parametrem.

@echo off

if (%1) == () goto koniec if (%2) == () goto koniec attrib %2\%1

: koniec

(41)

Zadanie 3

Napisz procedurę, która kopiuje pliki dane pierwszym

parametrem z katalogów danych pozostałymi parametrami do katalogu MOJ na dysku C.

(42)

@echo off

if (%1) == () goto koniec set plik=%1

shift : start

if (%1) == () goto koniec copy %1\%plik% C:\ MOJ shift

goto start : koniec

(43)

Zadanie 4

Napisz procedurę, która z katalogu będącego pierwszym parametrem przekopiuje do katalogu będącego drugim parametrem pliki określone następnymi parametrami.

(44)

@echo off

if (%1) == () goto koniec if (%2) == () goto koniec

set kat1(dowolne) x/=%1 (podstawia za kat1 %1) set kat2 = %2

shift shift : start

if (%1) == () goto koniec copy %kat1%\%1 %kat2%

---co--- --gdzie—

shift

goto start : koniec

(45)

Zadanie 5

Napisz procedurę, która utworzy na dysku katalog roboczy, a w nim zapisze dane parametrami procedury.

@echo off

md c:\roboczy : start

if (%1) == () goto koniec md c:\roboczy\%1

shift

goto start

: koniec

(46)

Zadanie 6

Napisz procedurę ,która dopisze do pliku cos.txt wszystkie parametry tej procedury.

:start

if (%1) == ( ) goto koniec echo %1>>C:\cos.txt

shift

goto start

:koniec

(47)

Zadanie 7

Utwórz plik wsadowy dopisujący do pliku imie.txt nazwisko po wybraniu opcjonalnie klawisza (A) lub zakończy

procedurę po wybraniu klawisza (B)

(48)

@echo off

echo a dopisz nazwisko echo b koniec procedury

choice / c: a – lub+/ wybierz klawiszy a,b if errorlevel == b goto k

if errorlevel == a goto d :d

echo (nazwisko)>>imię.txt :k

echo koniec

Cytaty

Powiązane dokumenty

Pierwszą daną w pliku jest liczba elementów tablicy... Liczba danych nie jest z

W bloku PL/SQL sprawdź, którego artykułu jest najwięcej w magazynie i zmniejsz ilość tego artykułu o 5 (jeśli stan jest większy lub równy 5, w przeciwnym wypadku zgłoś

Uzasadnij szczegółowo, że proces Poissona jest procesem L´

[r]

Pokaż przebieg algorytmów wyszukiwania sekwencyjnego (indeks) oraz bez powtórzeń (kolejne przedziały) przy wyszukiwaniu wartości równej liczbie o indeksie równym

W pierwszym etapie projektu ustalamy trasy kanałów instalacji odciągów miejscowych oraz dobieramy ich średnice, wg zasad:!. • Kanały stalowe, o

Zadania RP 1,

Rezultatem pewnego doświadczenia mogą być wyniki A, B, C, przy czym w pewnych szczególnych przypadkach odróżnienie wyniku A od wyniku B może być niemożliwe.. Rozważmy model