Systemy operacyjne

Opis zajęć i zasad

Zajęcia 12

Ważne! Przed przystąpieniem do pracy na komputerach w laboratoriach wpisz w wierszu poleceń:

set PATH=c:\windows;c:\windows\system32;%PATH%

Polecenia sieciowe

Pathping

Pathping to śledzenie ścieżki pakietu pomiędzy poszczególnymi hostami i informacje dotyczące czasu przesyłania. Polecenie pozwala nam określić każde urządzenie w trakcie podróży pakietu oraz pokazuje jego numer IP.

pathping google.pl

IPconfig

Wyświetla wszystkie bieżące wartości konfiguracji sieci protokołu TCP/IP. Polecenie ipconfig użyte bez parametrów powoduje wyświetlenie adresów IPv6 lub adresu IPv4, maski podsieci i bramy domyślnej dla wszystkich kart.

ipcofig
:: #Wyświetlanie pełnej konfiguracji protokołu TCP/IP
ipconfig /all

Net

Polecenia z grupy Net służą do zarządzanie szeregiem ustawień w systemie w szczególności umożliwia wyświetlenie szerszych informacji o połączeniu sieciowym.

net
:: #Polecenie net help pokazuje listę poleceń sieciowych, oraz informacje o określonym poleceniu
net help
:: #Polecenie net user służy do tworzenia i modyfikowania kont użytkowników w systemie .
net user
:: #Polecenie net  accounts uaktualnia bazę danych kont użytkowników oraz modyfikuje wymagania dotyczące haseł i logowania dla wszystkich kont.
net accounts
:: #Polecenie net config umożliwia wyświetlenie i zmianę ustawień usług Serwer lub Stacja robocza
net config
:: #Polecenie net pause wstrzymuje uruchamione usługi. Wstrzymanie usługi powoduje jej zawieszenie, oprogramowanie nie jest usuwane z pamięci. Użytkownicy połączeni z zasobami mogą zakończyć swoje zadania, ale nie mogą rozpocząć nowych.
net pause
:: #Polecenie net continue wznawia usługę, która została zatrzymana za pomocą polecenia net pause
net continue
:: #Polecenie net share zarządza udostępnionymi zasobami.
net share
:: #Polecenie net  statistics pokazuje  dziennik statystyki dla lokalnej usługi:Stacja  robocza  lub  serwer albo innych uruchomionych usług, dla których dostępne są statystyki.
net statistics workstation

Ping

Polecenie ping weryfikuje łączność na poziomie protokołu IP z innym komputerem obsługującym protokół TCP/IP, wysyłając komunikaty żądania echa protokołu ICMP.

ping google.pl
ping -n -10 www.wmi.amu.edu.pl
:: przełącznik -l pozwala zmienić rozmiar pakietu
ping -l 320 google.pl
:: jaki jest domyślny i maksymalny rozmiar pakietu?
:: Przełącznik -a powala wykonać polecenie ping i rozpoznać nazwę hosta, np: 80.50.231.226
ping -a 80.50.231.226

Uwaga: Polecenia ping można także używać do testowania nazwy i adresu IP komputera. Jeżeli polecenie ping dotyczące adresu IP będzie wykonane pomyślnie, ale zawiedzie pingowanie związane z nazwą komputera, być może wystąpił błąd rozpoznawania nazw (DNS).

Pliki wsadowe c.d.

PAUSE

Umożliwia wstrzymanie wykonywania pliku wsadowego. W momencie napotkania polecenia wyświetli się informacja "aby kontynuować, naciśnij dowolny klawisz…" po wciśnięciu którego wykonywanie pliku będzie kontynuowane.

@Echo off
Echo "Dzieńdobry"
PAUSE
Echo "Dzieńdobry znowu"
PAUSE To się nie wyświetli (jest jak komentarz w pliku)!
Echo "Dzieńdobry znowu i znowu"
PAUSE > NUL
ECHO "Koncze"

Polcenie " > NUL " powoduje przekierowanie wypisania komunikatu w "pustkę".

BREAK

Gdy parametr ten nie został podany, lub gdy został ustawiony BREAK OFF, system sprawdza, czy chcemy przerwać działanie polecenia tylko w trakcie wykonywania funkcji związanych z ekranem, klawiaturą, drukarką lub innym urządzeniem zewnętrznym. Polecenie BREAK ON powoduje, że system sprawdza, czy użytkownik nie nacisnął kombinacji Ctrl Break podczas wykonywania każdej funkcji. Można w ten sposób dokonać przerwania programów, które używają niewielu funkcji związanych z klawiaturą. Polecenie BREAK bez parametrów wyświetla aktualny stan.

BREAK OFF
BREAK ON

CALL

Polecenie call pozwala wykonać fragment bieżącego programu (poprzez odwołanie przez etykietę) lub cały zewnętrzny program wsadowy jak jedno polecenie (patrz przykłady niżej przy Go To). Polecenie CALL może wywołać także inny plik wsadowy, a po jego zakończeniu powrócić do macierzystego. Program może wywołać też sam siebie np.:

@Echo Off
Echo Linia 1
PAUSE
CALL plik.bat

GOTO

Powoduje skok do miejsca oznaczonego etykietą (dwukropkiem)

@Echo Off
Echo Linia 1
GOTO etykieta
Echo Linia 2
GOTO etykieta
Echo Linia 3
:etykieta
Echo Linia 4

Sprawdź, czy wielkość liter w nazwach etykiet ma znaczenie. Co dzieje się, gdy będziemy mieć pare etykiet o tej samej nazwie?

Etykiety możemy stosować także z poleceniem call. Poprzedzamy je wtedy dwukropkiem. Polecenie goto można wywołać z argumentem :eof. Wówczas działanie programu wsadowego zostanie przeniesione na koniec pliku. Przykład:

@echo off
echo Witaj swiecie
call :funkcja
echo Funkcja sie skonczyla
goto :eof
:funkcja
echo Jestem funkcja
goto :eof

Inny przykład:

@echo off
echo Moje argumenty to: %1 %2 %3
call :funkcja ala ma kota
goto :eof

:funkcja
echo Moje argumenty to: %1 %2 %3
goto :eof

IF

Polecenie if testuje wartość logiczną warunku i wywołuje zadaną komencę jeżeli zadany warunek jest prawdziwy. Modyfikator NOT odwraca działanie i komenda jest wywoływana kiedy warunek jest fałszywy.

Słowa kluczowe

Errorlevel - kod zakończenia programu lub komendy zewnętrznej. Nastepujące komendy DOS zwracają kod wykonania: BACKUP, RESTORE, FORMAT, REPLACE, and XCOPY.

Exist - sprawdza czy istnieje plik lub katalog

NOT - zaprzeczneie warunku

Przykłady:

BACKUP C:\*.* A: /s
if errorlevel 3 if not errorlevel 4 echo ERROR #3 occurred
if errorlevel 4 if not errorlevel 5 echo ERROR #4 occurred

if string1==string2 echo TAK
:: Warunek jest prawdziwy jeżeli oba stringi są identyczna. Porównanie bierze pod uwagę wielkie i małe litery. Jeżeli string jest pusty zwracany jest błąd "syntax error".

if (%1)==(LTRS) CD C:\WORD\LTRS
:: Jeżeli pierwszy parametr jest równy LTRS, zmień katalog na LTRS.

if /I ABC==abc echo tak
:: Przy /I wielkości znaków są ignorowane

if "%1"=="" goto ERROR
:ERROR
Echo error
:: Jeżeli parametr nie został podany to przejdź do etykiety ERROR.

if not %2X==X DIR %2\*.*
:: Jeżeli drugi parametr jest zdefiniowany to wyświetl wszystkie pliki z katalogu %2

if not "%3"=="" if not "%3"=="b" if not "%3"=="B" goto BADPARAM
:: Jeżeli trzeci parametr nie jest określony lub jest inny niż małe b lub duże B, to przejdź do etykiety BADPARAM

if exist plik.bat echo istnieje
:: warunek jest prawdziwy jeżeli w bieżącej lokalizacji istnieje plik o nazwie plik.bat

if exist D:\%1\nul CD %1
:: Sprawdza istnienie katalogu %1 (nawet jeśli nie zawiera on żadnych plików) i przechodzi do tego katalogu

FOR

For służy do określania pętli wykonującej się dla każdego elementu zadanej listy wartości.

Przykłady:

for %%d in (A,C,D) do DIR %%d *.*
:: Wyświetla po kolei zawartość dysków A, C, i D.}

for %%f in (*.TXT *.BAT *.DOC) do TYPE %%f
:: Wyświetla zawartość plików o typach .TXT, .BAT i .DOC z bieżącego katalogu.

for %%P in (%PATH%) do if exist %%P\*.BAT COPY %%P\*.BAT C:\BAT
:: Kopiuje  wsztstkie pliki wsadowe znajdujące się w ścieżkach dodanych do PATH do katalogu C:\BAT.

for %%f in (*.cpp) do g++ %%f
:: Uruchamia komendę kompilacji dla wszystkich plików w bieżącym katalogu.

FOR %%A IN (1 2 3 4 5 6 7 8 9 0) DO ECHO Wartość zmiennej = %%A
:: Wypisuje liczby od 1 do 9 i 0

FOR %%A IN (1 2 3 4 5 6 7 8 9 0) DO ECHO Wartość zmiennej = %%%A

For po wartościach liczbowych definiujemy za pomocą przełącznika /L. Przyjmuje on trzy parametry, początkowa wartośc, skok oraz końcowa wartość.

FOR /L %%G IN (1,1,5) DO echo %%G
FOR /L %%G IN (1,2,5) DO echo %%G
FOR /L %%G IN (1,14,5) DO echo %%G

For po wartościach oznaczających nazwy katalogów definiujemy za pomocą przełącznika /D. Porównaj:

for %f in (r*) do @echo %f
for /D %f in (r*) do @echo %f

Uwaga: Zmienne iteracyjne są jednym z niewielu elementów języka wiersza poleceń, w którym wielkość liter ma znaczenie. Zmienna %a jest zatem inną zmienną niż %A.

%

W plikach wsadowych pojedynczy znak procentu w linii traktowany jest jako null. Ciąg znaków pomiędzy dwoma znakami procent traktowany jest jak nazwa zmiennej. W przypadku gdy oba znaki występuja obok siebie to traktowane są jak znak%

Przykład, wpisz w wierszu poleceń:

FOR %V IN (*.*) DO ECHO %V

W pliku wsadowym ta sama linia powinna mieć postać:

:: Zapisz jako plik wsadowy
FOR %%V IN (*.COM) DO ECHO %%V

Przykład:

Przykład pliku wsadowego argument.bat, który umieszcza w pliku o nazwie argument.txt wszystkie podane argumenty, każdy 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

Inny przykład:

@echo off
echo POLECANE STRONY INTERNETOWE
echo [1] - Wikibooks
echo [2] - Wikipedia
echo [3] - Pliki wsadowe w Wikibooks
echo [4] - Pliki wsadowe w Wikipedii
set /p odp=Podaj numer strony do uruchomienia?
if %odp%=="1" start iexplore.exe http://pl.wikibooks.org
if %odp%=="2" start iexplore.exe http://pl.wikipedia.org
if %odp%=="3" start iexplore.exe http://pl.wikibooks.org/Pliki_wsadowe
if %odp%=="4" start iexplore.exe http://pl.wikibooks.org/Program_wsadowy
if not %odp%=="1" exit
if not %odp%=="2" exit
if not %odp%=="3" exit
if not %odp%=="4" exit
*

Wykorzystano materiały z:

http://traxter-online.net/wiersz-polecenia-i-pliki-wsadowe/

https://technet.microsoft.com/pl-pl/library/cc755772%28v=ws.10%29.aspx

http://iisi.pcz.pl/~wmleczko//lab/so/Win7%203.pdf

http://academic.evergreen.edu/projects/biophysics/technotes/program/batch.htm

http://biuletyn.rcre.opolskie.pl/pliki_wsadowe/pliki_wsadowe.htm

http://www.computerworld.pl/news/307419/Polecenia.konforguracyjne.html

https://bap.faculty.wmi.amu.edu.pl/wp-content/uploads/2015/07/SOP_2015SZ_LAB_13.pdf