No registered users in community Materiały
in last 10 minutes
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 !)