Programowanie Wsadowe W DOS I Windows.doc

(53 KB) Pobierz
2. DOS - Programowanie wsadowe.pdf

Programowanie wsadowe DOS/Windows

 

1.              Wstęp

Program wsadowy jest to ciąg poleceń trybu linii komend lub wywołań programów zapisany w pliku tekstowym o rozszerzeniu  . bat Celem programowania wsadowego jest:

przyspieszenie pracy

personalizacja środowiska systemu operacyjnego

W języku programowania wsadowego można stosować wszystkie komendy dostępne w trybie linii komend. Do sterowania działaniem programu wsadowego służą komendy sterujące:

cali -   uruchamia  programu wsadowego  z poziomu  innego  programu wsadowego,  a następnie powrót do programu źródłowego (odpowiednik procedury w językach wyższego rzędu) echo -   wyświetla komunikaty na ekranie, oraz może służyć do włączania lub wyłączania

wyświetlania komunikatów for   -   powtarza komendę dla zestawu zmiennych goto -   przechodzi do innej części programu If    -   wykonuje komendy w zależności od spełnienia warunku pause -   zatrzymuje wykonanie programu do czasu wciśnięcia dowolnego klawisza rem   -   komentarz

shift -   przesuwa parametry programu (%9->%8,%8->%7 itd.) W dalszej części instrukcji zostaną szczegółowo omówione powyższe instrukcje.

Informacje o sposobie wywołania komendy uzyskuje się poprzez wpisanie nazwy komendy z parametrem /? np.: if /?. Nazwy programów wsadowych podlegają tym samym ograniczeniom, jak nazwy plików w systemie - dopuszczalne są długie nazwy. Programy wsadowe uruchamia się podając w trybie interaktywnym nazwę pliku wsadowego (najlepiej łącznie z rozszerzeniem). Plik wsadowy można także uruchomić w trybie okienkowym wybierając go poprzez podwójne (lub jednokrotne - zależnie od ustawień) kliknięcie klawiszem myszki - tak jak każdy inny program. Zatrzymać wykonanie programu wsadowego można poprzez naciśnięcie kombinacji klawiszy Ctrl+S lub Pause. Wykonanie programu jest kontynuowane po naciśnięciu dowolnego klawisza. Przerwać działanie programu wsadowego można poprzez naciśnięcie kombinacji klawiszy Ctrl+C lub Pause.

2.              Używanie Notatnika do tworzenia skryptów.

Skrypty są plikami tekstowymi, więc do ich tworzenia można używać programu Notatnik. Należy jednak uważać na jedną cechę tego programu: podczas zapisywania dodaje on rozszerzenie txt do nazwy programu, np. zapisując pod nazwę skrypt .bat program zapisze skrypt .bat. txt, czyli NIE jest to skrypt. Aby Notatnik nie dodawał rozszerzenia, to przy pierwszym zapisie (tylko wtedy podajemy nazwę) oprócz wpisania nazwy i rozszerzenia, np.  skrypt. bat należy na oknie


II. Programowanie wsadowe DOS/Windows


1


dialogowym wybrać opcję Wszystkie pliki w okienku Zapisz jako typ. Uchroni to przed dodaniem rozszerzenia txt.

Przy przeglądaniu plików za pomocą standardowego narzędzia „Mój komputersą ukryte znane przez system operacyjny rozszerzenia plików, co utrudnia podejrzenie prawdziwego rozszerzenia pliku. Aby wyłączyć tą opcję, należy wybrać z menu Narzędzia^Opcje folderów. . . a następnie na zakładce Widok odznaczyć opcję Ukryj rozszerzenia plików znanych typów.

3. Wyświetlanie komunikatów

Komunikaty w programach wsadowych można wyświetlać korzystając z instrukcji echo. Składnia tego polecenia:

echo <Treść komunikatu> Aby wyświetlić pustą linię należy użyć polecenia

echo. (z kropką na końcu, bez spacji).

Przykład

echo Program przesuwa pliki z katalogu KAT1 do KAT2 move KAT1 KAT2 dir KAT2

Aby dany tekst nie wyświetlać na ekranie, ale aby zapisać do pliku, należy posłużyć się symbolami przekierowania > oraz >> omówionymi w instrukcji do pierwszego ćwiczenia.

W celu wyświetlania dłuższych tekstów, korzystniej jest zapisać treść w pliku tekstowym i wyświetlić go używając instrukcji type - przyspiesza to pracę, szczególnie w sieciach.

Komenda echo może być użyta do ograniczenia wyświetlania wykonywanych instrukcji programu. I tak, aby wyłączyć wyświetlanie wykonywanych instrukcji należy użyć instrukcji:

echo off Aby włączyć wyświetlanie wykonywanych instrukcji:

echo on

Efekt podobny do użycia echo off dla pojedynczej instrukcji można osiągnąć poprzedzając instrukcję znakiem @. Warto wspomnieć, że wywołując polecenie echo off pojawi się na ekranie ta instrukcja (bo „echo” nie jest jeszcze wyłączone), dlatego najczęściej jest wywoływane polecenie @echo off. Zazwyczaj nie jest pożądane wyświetlanie poszczególnych poleceń ze skryptu, dlatego też większość skryptów będzie się zaczynać od tego polecenia.

Przykład

@echo off

echo Program kopiuje pliki tekstowe z katalogu KAT1 do

KAT 2

copy KAT1 KAT2

dir KAT2


II. Programowanie wsadowe DOS/Windows


2


4.              Komenda pause

Zatrzymanie programu można wymusić korzystając z komendy pause. Instrukcja pause wyświetla komunikat

Naciśnij dowolny klawisz aby kontynuować... a następnie oczekuje na wciśnięcie dowolnego klawisza.

Przykład

@echo off

echo Program kasuje pliki tekstowe w KAT1

echo Zaczynam kasować...

pause

del KAT1\*.txt

cls

dir KAT1

W celu pominięcia wyświetlania komunikatu, wyjście komendy  pause można przekierować na wyjście puste: nul, tak jak na poniższym przykładzie:

echo Naciśnij dowolny klawisz pause > nul

Ćwiczenia do wykonania

W katalogu, do którego masz prawo do zapisu, utwórz skrypt o nazwie a . bat

Skrypt ma utworzyć następującą strukturę katalogów:

kat1 kat2

podkatalog jeden (proszę zachować spację w nazwie podkatalogu)

3.              W każdym podkatalogu proszę utworzyć plik nazwa. txt, który będzie zawierał ścieżkę do
tego katalogu (należy wykorzystać polecenie cd i przekierowanie strumienia)

5.              Etykieta i skok do etykiety goto

Etykieta jest to nazwa danego wiersza w skrypcie. Etykiety definiuje się pisząc nazwę etykiety poprzedzoną dwukropkiem np.:

:etykieta

Poprzez etykiety i instrukcje skoku goto można zmienić kolejność wykonywania instrukcji programu. Składnia polecenia skoku wygląda następująco:

goto etykieta

Przykład:

echo Zaraz zostanie wywołana instrukcja skoku

II. Programowanie wsadowe DOS/Windows              3


goto etl

echo To polecenie zostanie pominięte

: etl

6. Programy z parametrami i polecenie shi ft

Programy wsadowe mogą być wywoływane z parametrami tak jak zwykłe programy/polecenia, np. dla polecenia copy pliki plik2 pierwszym argumentem jest pliki, a drugim piik2. Dostęp do parametrów z poziomu programu wsadowego odbywa się przez użycie symboli %0 do %9. Symbol %0 oznacza nazwę wykonywanego programu wsadowego. Symbole od %1 do %9 odpowiadają kolejnym parametrom. W sposób prosty można się odwołać do dziewięciu parametrów.

Przykład

@echo off

echo Program kopiuje pliki tekstowe

pause

copy %l\*.txt %2

cis

dir %2 /p

Aby móc odczytać kolejne parametry NIE można posłużyć się symbolem %10, ponieważ przez system zostanie to zrozumiane jako parametr pierwszy, do którego zostanie doklejone 0, czyli dla wywołania:

Skrypt.bat Ala Ola 4 5 6 7 8 9 10 11 parametry będą interpretowane w następujący sposób

%1 = Ala

%10 = AlaO

Aby móc korzystać z kolejnych parametrów należy użyć polecenia shif t, które przesuwa kolejność argumentów o jeden, tzn. parametr %1 staje się parametrem %0, parametr %2 staje się %1 itd., natomiast niedostępny wcześniej parametr dziesiąty staje się parametrem %9 (poprzednia wartość parametru %0 zostanie „skasowana”).

Przykład

@echo off

echo %0

shift

echo %0

shift

echo %0 Po wywołaniu skryptu poleceniem

Skrypt.bat Ala Ola Ela wyświetli się następujący wynik:

Skrypt.bat

Ala


II. Programowanie wsadowe DOS/Windows


4


Ola

7. Instrukcja warunkowa if

W programach wsadowych można używać instrukcji warunkowej if, której ogólna zasada sprowadza się do sprawdzenia określonego warunku logicznego i przy jego spełnieniu wykonania dowolnej instrukcji.

if [not] errorlevel numer instrukcja

(Nawiasy [] oznaczają część opcjonalną.)

Ta postać instrukcji  if wykona instrukcję  instrukcja jeżeli kod wyjściowy z poprzedniego

programu  (errorlevel) [nie] jest mniejszy niż numer.

Przykład

copy nie_ma_tego_pliku.txt plik2.txt

if errorlevel 1 echo Nie udało się skopiować

if [not] ciągl==ciąg2 instrukcja

Wykonanie instrukcji instrukcja, jeżeli ciąg znaków ciągi [nie] jest równy ciągowi ciąg2. Aby ustrzec się przed bł...

Zgłoś jeśli naruszono regulamin