portal Michała Hanćkowiaka
Begin main content
Search · Index
No registered users in community Materiały
in last 10 minutes

SOP - polecenia i skrypty - DOS/Windows


++++++++++++++++++++++++++++
Kilka tradycyjnych zadan z polecen/skryptow DOS-u ...


Z1. Wymien polecenia DOS-u sluzace do:
       * chodzenia po drzewie katalogow
       * tworzenia nowych katalogow
       * ogladania calego drzewa katalogow
       * zmiany nazwy pliku lub katalogu
       * usuwania plikow
       * usuwania katalogow (pustych)
       * usuwania katalogu razem z zawartymi w nim
	 plikami i podkatalogami
       * porownywanie zawartosci plikow

Z2. Powiedz do czego sluza i dlaczego zostaly umieszczone
   w tej samej grupie nastepujace polecenia :
       * append, path
       * subst, join

Z3. Wyjasnij pojecia i podaj przyklady:
       * przekierowanie we/wy ">" "<" ">>"
       * potok "|"
       * filtr

Z4. Zmien "prompt" tak aby pokazywal:
   biezaca date oraz katalog biezacy i znak ">"
   Np: (Sun 14.03.1999) c:\qqq>
   wskazówka: w polecenie prompt używa się symboli 
      $D (data), $P (bież. katalog), $G (znak ">"), resztę przeczytaj w prompt /?

Z5. (wariacje na temat polecenia "copy")
   Wiadomo, ze polecenie copy moze byc uzywane
   na nastepujace sposoby :
      * copy plik katalog

      * copy plik plik
	Np: copy plik1.txt plik2.txt
	    copy plik1.txt con:
	    copy con: plik1.txt
	    copy *.txt *.qqq
	      (w ostatnim przypadku kazdy plik .txt
	      zostanie skopiowany do pliku .qqq, o tej samej nazwie)

      * copy plik1 + plik2 + ... plik_wynikowy
	   (w tym wypadku chodzi o polaczenie plikow i zapisanie
	   do plik_wynikowy)
	Np: copy plik1.txt + plik2.txt + plik3.txt plik_wy.txt

      * copy plik1 + plik2 + ...
	(polaczenie plikow i dolaczenie na koniec pierwszego)
	Np: copy plik1.txt + *.txt

   Opcje "/a" i "/b" pozwalaja okreslic czy plik
   ma byc traktowany jako tekstowy czy binarny.
   Opcje te dzialaja na plik "przed" opcja i na wszystkie pliki
   za opcja (az do nastepnej opcji).
   Opcja "/a" w pliku zrodlowym powoduje, ze bedzie on
   czytany az do znaku ^Z (o kodzie 26).
   Opcja "/a" w pliku wynikowym powoduje, ze na koncu bedzie
   dopisany znak ^Z.

   WYPROBUJ dzialanie tych opcji podczas kopiowania
   i laczenia plikow.  W tym celu musisz utworzyc pliki
   zawierajace w srodku znak ^Z, np w taki sposob :
      echo 111^Z222 > plik.txt
   a nastepnie wykonac odpowiednie kopiowania
   sprawdzajac dlugosc otrzymanch plikow


Z6. Mamy katalog "aaa" z plikami "plik1.txt" ... "plik99.txt"
    Pokaz jak jednym poleceniem "xcopy" (ale z pomoca
    wiekszej liczby innych polecen) skopiowac niektore
    pliki z "aaa" do katalogu "bbb".
    Jakie ten mechanizm moze miec zastosowanie
    w przypadku kopiowania na dyskietke ?.



++++++++++++++++++++++++++++++++++++
skrypty DOS-u, czyli pliki *.BAT


polecenia uzywane w skryptach :
   * call skrypt
	 uruchomienie skryptu jak procedury;
	 zwykle "skrypt.bat" bez "call" spowoduje
	 ze nie bedzie powrotu do skryptu wywolujacego !

   * @echo off
     echo.
     echo Tekst, tekst ...

   * goto etykieta
	 Np petla nieskonczona:
	      :xxx
	      echo 123
	      goto xxx
	 mozna ja zatrzymac przez Ctrl-C

   * for %%zmienna in (lista) do komenda
	 Np (wewnatrz skryptu):
	      for %%x in (qqq,www,eee) do echo %%x
	      for %%x in (*.txt,*.qqq) do type %%x

   * set zmienna=wartosc
	 tworzenie zmiennych srodowiska
	 Np:
	      set x=123       -- tworzenie zmiennej
	      set x=          -- usuniecie zmiennej
	      echo x=%x%      -- odczytanie wartosci zmiennej
				 (w skrypcie)

   * if [not] warunek komenda
	 Np:
	     if exist plik.txt echo Plik plik.txt istnieje !
	     if "%x%" == "123" echo Zmienna x == 123 !
	     if errorlevel 5 echo Kod wyjscia ostatniego polecenia >= 5 !

   * shift, parametry skryptu %0, %1, %2, ...
	 po wywolaniu skryptu z parametrami
	 zmienne %0, %1, ... maja nastepujace wartosci
	      skrypt.bat 111 222 333
	      %0         %1  %2  %3
	 po wykonaniu "shift" sytuacja sie zmienia
	      skrypt.bat 111 222 333
			 %0  %1  %2

..................


Z7. Napisz skrypt, ktory wyswietla wszystkie swoje parametry

Z8. Napisz skrypt, ktory wyswietla wszystkie swoje parametry
   oraz sprawdza czy sa plikami (jesli sa to wyswietla odpowiedni
   komunikat), Np:
       skrypt.bat qqq.txt www.txt rrr.txt ttt.txt
       qqq.txt (jest plikiem)
       www.txt (nie istnieje)
       rrr.txt (jest plikiem)
       ttt.txt (nie istnieje)

Z9. Napisz skrypt ktory po uruchomieniu
    dopisuje pewien katalog do PATH-a, a po drugim uruchomieniu
    przywraca pierwotna wartosc zmiennej PATH
    (.. i tak dalej - na przemian)

Z10. Napisz skrypt pelniacy role ksiazki telefonicznej :
   Sposoby uruchamiania :
       --> dodanie nowego nazwiska
       ksiazka Kowalski 123123
       --> odczytywanie nr telefonu
       ksiazka Kowalski

Z11. Napisz skrypt "type2" ktory jest uszlachetniona
   wersja polecenia "type" :
       moze byc uruchamiany z wieloma parametrami
       bedacymi nazwami plikow (moga zawierac znaki globalne *?)

Z12. Napisz plik wsadowy ktory wyswietla date i czas
   ale nie zacheca do wprowadzenia nowej daty/czasu

Z13. Napisz program wsadowy ktory umozliwia pomiar czasu
   wykonania dowolnego programu

Z14. Napisz program wsadowy ktory sprawdza czy zawartosc
   dwoch katalogow jest identyczna (chodzi tylko o nazwy plikow
   w tych katalogach !)

uwaga: portal używa ciasteczek tylko do obsługi tzw. sesji...