Systemy operacyjne

Opis zajęć i zasad

Zajęcia 11

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

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

Komendy

cls

Czyści ekran wiersza poleceń.

Echo Hello
CLS
Echo You didnt see that
cls > a.txt
:: co będzie w pliku a.txt?

date

Wyświetla i ustawia datę. Wywołana z przełącznikiem /T tylko wyświetla datę, bez monitowania o podanie nowej daty.

date /t
date

time

Wyświetla i ustawia datę. Wywołana z przełącznikiem /T tylko wyświetla datę, bez monitowania o podanie nowej daty.

time /t
time

exit

Służy do zakończenia skryptu, podprocesu lub wiersza poleceń. Wykorzystana w skryptach z przełącznikiem /B kończy tylko skrypt nie kończąc pracy wiersza poleceń.

exit

Metasymbole

& - Łączy dwa lub więcej poleceń (pozwala za jednym razem uruchomić więcej niż jedno polecenie. Uwaga! W systemie Windows XP katalogi oraz pliki mogą w nazwie zawierać znak ampersand &.

&& - Łączy dwa lub więcej poleceń, przy czym połączenie po prawej stronie znaków jest wykonywanie tylko wtedy gdy polecenie po lewej stronie znaków zostało wykonane pomyślnie.

|| - Łączy dwa lub więcej poleceń, przy czym połączenie po prawej stronie znaków jest wykonywanie tylko wtedy gdy polecenie po lewej stronie znaków zostało wykonane niepomyślnie.

| - Przekazuje dane wyjściowe jednego programu do danych wejściowych drugiego programu.

> - Przekierowuje dane wyjściowe. W przypadku istnienia nadpisuje istniejący plik.

>> - Przekierowuje dane wyjściowe do pliku, przy czym nie nadpisuje pliku, tylko dopisuje dane.

< - Przekierowuje dane wejściowe.

\ - Służy do oddzielania katalogów w ścieżkach

% - Służy do poprzedzania parametrów i otaczania nazw zmiennych

() - Grupowanie poleceń

. - Oznaczenie bieżącego katalogu

.. - Oznaczenie katalogu nadrzędnego

Przykłady:

mkdir nowy & cd nowy
cd nowy && mkdir nowy
cd nowy || mkdir nowy

Zmienne środowiskowe

Zmienne środowiskowe (environment variable) można przyrównać do aliasów dla podstawowych lokalizacji w systemie takich jak dyski, ścieżki, foldery czy pliki. Kontrolują zachowanie różnych programów np. zmienna TEMP określa lokalizację, w której programy umieszczają pliki tymczasowe.

Aby edytować zmienne środowiskowe klikamy menu Start >>> w oknie Mój komputer klikamy prawym przyciskiem myszy na Ten komputer >>> Właściwości >>> Zaawansowane ustawienia systemu >>> Zmienne środowiskowe. Otworzy się okienko Zmienne środowiskowe, edytor zmiennych środowiskowych.

Set

Aby wyświetlić listę zmiennych istniejących w systemie wystarczy także w oknie wiersza poleceń wpisać komendę

set

Wszelkie odwołania do zmiennych wykonuje się poprzez umieszczenie nazwy zmiennej między znakami „%”. Wielkość liter w nazwie nie ma znaczenia („%var%” oraz „%VAR%” to odwołanie do tej samej zmiennej). Poleceniem set można także wyświetlić wszystkie zmienne (bez podania parametrów) lub rozpoczynające się od wpisanych znaków (np. „set Pa” wyświetli wszystkie zmienne na „PA”).

Zmienne ustawia się wpisując polecenie:

set var=5

Można także podać poprzednią wartość zmiennej np.:

set var=%var%5

Wartość zmiennej o nazwie VAR można sprawdzić poleceniem:

set VAR
:: lub
echo %VAR%

Jak system zinterpretuje zmienną która nie istnieje?

echo %we%
set we=21
echo %we%

Instrukcja:

set var=

Spowoduje usunięcie zmiennej o nazwie var.

Instrukcja:

set /P zmienna=[tekst]

Zezwala na ustawienie wartości zmiennej odczytanego z wiersza wejścia wprowadzonego przez użytkownika. Najpierw bę dzie wyświetlony określony tekst (może być pusty), a następnie użytkownik wprowadza wartość zmiennej na końcu wciskając ENTER. Ta wersja olecenia set przydaje się w programowaniu wsadowym.

Instrukcja set /A zmienna=[wyrażenia] oznacza, że ciąg po prawej stronie znaku równości jest wyrażeniem numerycznym, które jest obliczane. Program obsługujący obliczanie wyrażeń jest bardzo prosty, przede wszystkim obejmuje wyrażenia arytmetyczne typu +, -, *, /. Przykład:

set /A liczba=2+2
set /A liczba=%liczba%*2

Path

Podobnie jak w systemie Linux zmienna Path zawiera listę folderów, gdzie szukane będą pliki do uruchomienia. Wpisanie w wierszu poleceń polecenia path wypisze wartość zmiennej PATH.

path

Prompt

Komenda prompt zmienia znak zachęty w wierszu poleceń windows. Tekst zahcety może składać się ze zwykłych znaków i znaków specjalnych:

$A & (Ampersand)

$B | (pipe)

$C ( (Left parenthesis)

$D Current date

$E Escape code (ASCII code 27)

$F ) (Right parenthesis)

$G > (greater-than sign)

$H Backspace (erases previous character)

$L < (less-than sign)

$M Display the remote name for Network drives

$N Current drive

$P Current drive and path

$Q = (equal sign)

$S (space)

$T Current time

$V Windows NT version number

$_ Carriage return and linefeed

$$ $ (dollar sign)

$+ Will display plus signs (+) one for each level of the PUSHD directory stack

The default prompt is $P$G (drive/path followed by > )

PROMPT=$T$H$H$H$G$S
prompt=Tu pisz$G$S
prompt

Inne zmienne

AppData Lokalizacja katalogu Dane aplikacji aktualnie zalogowanego użytkownika.

HomeDrive Litera dysku, na którym znajduje się katalog domowy użytkownika.

HomePath Lokalizacja katalogu domowego użytkownika.

Os Nazwa systemu operacyjnego. Jeżeli jest to system Windows XP wyświetlane jest Windows_NT w przypadku Windows'a 2000 - Windows_2000

ProgramFiles Lokalizacja katalogu Program files.

SystemDrive Litera dysku, na którym znajduje się katalog Windows.

Temp Lokalizacja katalogu, w którym znajdują się pliki systemowe.

UserName Nazwa aktualnie zarejestrowanego użytkownika.

UserProfil Lokalizacja aktualnie zarejestrowanego profilu użytkownika.

errorlevel Przechowuje status wyjścia ostatnio wykonanego polecenia.

echo %AppData%
echo %HomeDrive%
echo %HomePath%
echo %Os%
echo %ProgramFiles%
echo %SystemDrive%
echo %Temp%
echo %UserName%
echo %UserProfil%
echo %time%
echo %date%

Pliki wsadowe

Tryb wsadowy umożliwia zebranie kilku poleceń w jednym pliku i automatyczne wykonanie ich. Pliki wsadowe pozwalają na wykonanie kilku poleceń jeden po drugim. Gdy uruchamiamy polecenie poprzez ręczne wpisywanie w okno konsoli, Wiersz poleceń wykona je i oczekuje na dalsze instrukcje. W przypadku korzystania z plików wsadowych Wiersz poleceń pracuje w trybie wsadowym i wykonuje procedurę:

  1. Odczytuje wiersz pliku wsadowego zawierający polecenia identyczne do tych, które i tak musielibyśmy wpisać ręcznie.

  2. Zamyka plik wsadowy.

  3. Wykonuje odczytane polecenie.

  4. Ponownie odczytuje plik wsadowy, jego kolejny wiersz i wykonuje kolejne polecenie.

Pliki wsadowe określony są rozszerzeniem .bat lub .cmd i zawierają polecenia konsolowe, które normalnie wpisywaliśmy by ręcznie do konsoli. Tworzymy je więc przez utworzenie nowego pliku w dowolnym edytorze tekstu i zapisanie go jako plik o rozszerzeniu .bat (lum .cmd). Pliki zapisane w plikach o rozszerzeniu .cmd będą wykonywane w osobnej instancji wiersza poleceń systemu Windows, podczas gdy te zapisane w plikach o rozszerzeniu .bat będą wykonywane w maszynie wirtualnej systemu DOS. Aby wykonać polecenia zawarte w pliku wsadowym, należy wywołać jego nazwę jako polecenie powłoki.

REM / ::

REM lub :: nakazuje zignorować wszystkie znaki w danym wierszu. Używana jest do wstawiania krótkich komentarzy opisujących działanie poleceń zawartych w pliku.

Parametry

Pliki wsadowe mogą być wywoływane z parametrami.

Np. Plik.bat par1 par2

W pliku wsadowym do parametrów odwołujemy się poprzez znak %. W zmiennej %0 zapisana jest nazwa pliku wsadowego. Jeśli parametr o danym indeksie nie istnieje wewnątrz pliku zostanie odczytany jako pusty ciąg znakowy. Przykład:

:: zapisz jako plik plik.bat
echo %0
echo %1
echo %2
echo %3
echo "%4"
:: wywołaj Plik.bat par1 par2
:: wywołaj Plik.bat 1 2 3 4
:: wywołaj Plik.bat 1  2     3           4
:: wywołaj Plik.bat 1   2  " 3 " "4          "

Przykład:

IF %1==wartość GOTO etykieta
:: #sprawdzenie czy parametr pierwszy %1 równa się danej wartości. Jeżeli plik został
:: #wywołany bez parametrów, linia ta spowoduje wypisanie błędu składni
IF "%1"=="wartość" GOTO etykieta
:: #analogicznie do poprzedniego, ale brak parametru nie spowoduje błędu
IF %1X==X komenda
:: #jeżeli program został wywołany bez parametrów, wykonywana jest komenda
IF "%1"=="" komenda
:: #jak wyżej
COPY A:\%1 C:\
:: #wykorzystanie parametru do operacji kopiowania

Domyślnie wykonywanie plików wsadowych pociąga za sobą wypisanie na ekranie kolejnych wykonywanych poleceń. Aby powstrzymać to działanie dla jednego polecenia, należy poprzedzić je symbolem @. Można też wyłączyć tę opcję globalnie, wykonując polecenie "echo off". Przykład, wywołaj plik:

:: zapisz jako plik plik.bat
echo raz
@echo dwa
echo trzy
echo off
echo cztery
echo piec

Samo polecenie ECHO podaje aktualny stan ON/OFF.

SHIFT

Zmienia pozycję parametrów programu wsadowego, co pozwala na stosowanie więcej niż 10 podstawowych. Programy wsadowe obsługują 9 parametrów (od %1 do %9), podawanych przy uruchamianiu, po nazwie pliku oddzielonych od siebie spacją. Nazwa pliku jest oznaczana jako parametr 0 - %0. Po poleceniu SHIFT parametr %0 jest zapominany, jego miejsce zajmuje %1. Natomiast parametrem %1 zostaje dawny %2 itd. (Wartości parametrów przesuwane są w lewo). %9 przyjmuje wartość %10 - nieużywanego, ale pamiętanego.

Przykład:

Plik (przykład kopiujący pliki o rozszerzeniach bat, com i exe):

:KOPIOWANIE
If "%1"=="" GOTO END
:: #Jeżeli nie ma parametru %1, przeskok do etykiety END
COPY C:\*.%1 D:\
:: #Kopiowanie plików z rozszerzeniem określonym parametrem %1
SHIFT
:: #Przesunięcie parametrów.
GOTO KOPIOWANIE

:END
:: Uruchomienie programu z trzema parametrami
Plik.bat bat com exe

Ćwiczenia

  1. Wykonaj następujące polecenia:

set zmienna=wartosc
start cmd

a następnie w nowym oknie wywołaj polecenia

echo %zmienna%

Czy zmienna zmienna jest dostępna w utworzonym oknie (inaczej, czy jest zmienną środowiskową)?

Ustaw wartość dowolnej zmiennej w uruchomionym wierszu poleceń i sprawdź, czy da się do niej odwołać w macierzystym oknie.

  1. Utwórz plik wsadowy

skrypt.cmd

o treści

echo %abc%

Następnie wykonaj w katalogu ze skryptem następujące polecenia:

set abc=sprawdzam
skrypt

Co zostało wypisane na ekran?

*

Wykorzystano materiały z:

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

http://www.ee.pw.edu.pl/~tomzdun/zajecia/soisk_l/1.%20DOS%20-%20Linia%20komend.pdf

https://technet.microsoft.com/en-us/library/cc770297.aspx#BKMK_examples

http://ss64.com/nt/prompt.html

http://www.ee.pw.edu.pl/~tomzdun/zajecia/soisk_l/1.%20DOS%20-%20Linia%20komend.pdf

http://www.elektronik.lodz.pl/wbrzo/index.php?l1=09&l2=03&l3=00

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