mgr inż. Wacław Libront * Bobowa 2020

ZSO Bobowa, ul. Długoszowskich 1, 38-350 Bobowa, tel: 0183530220, fax: 0183530221, email: sekretariat@zsobobowa.eu, www: zsobobowa.eu

Lekcja 03

CMD - Strumienie i potoki

  1. Wstęp
  2. Wejście-Wyjście
  3. Potoki
  4. Zmienne systemowe
  5. Ćwiczenia

Wstęp

Ekran monitora jest traktowany jako standardowe urządzenie wyjściowe CON, jeżeli system operacyjny nie otrzyma od użytkownika innego polecenia. Klawiatura pełni rolę standardowego urządzenia wejściowego.


Wejscie - Wyjście

> (znak większości)
Przekierowuje dane z konsoli do pliku. Wykonane polecenia zwracają wyniki do standardowego wyjścia, tj. do okna wiersza polecenia. Przy pomocy symbolu > można przesłać także dane do innego dojścia.

>>
Informacja z wyjścia konsoli zostaje dopisane do pliku (na jego końcu), jeśli taki już istnieje.

< (znak mniejszości)
Podaje dane ze źródła na wejście polecenia. Operator < stosujemy w przypadku, gdy chcemy przesłać dane z wejścia innego niż standardowe (klawiatura), zazwyczaj z pliku.

Przykłady

TREE > drzewo.txt
W pliku tekstowym drzewo.txt w bieżącym folderze wpisane zostanie drzewo folderów

TYPE plik.txt > plik1.txt
Zamiast wyświetlać plik na ekranie kierujemy go do nowego pliku - kopiowanie plików!

DIR C:\ > D:\listaplikow.txt
Wylistowanie wszystkich plików i folderów znajdujących się w katalogu głównym dysku C:. Lista zostanie umieszczona w pliku listaplików.txt.

PING 8.8.8.8 >> C:\pingstat.txt
Monitorowanie zmiany pingu w pliku

SORT nieposortowany_plik.txt
Sortowane są kolejne wiersze pliku i wypisywane na ekran w postaci posortowanej

SORT < plik.txt > posortowany.txt
Sortujemy plik.txt a wynik tej operacji umieszczamy w pliku posortowany.txt


Operator potoku |
| - (tzw. potok)
polecenie1 | polecenie2

Przetwarzanie potokowe polega na skierowaniu strumienia danych wyjściowych jednego polecenia do innego polecenia jako strumienia danych wejściowych. Operator potoku (|) pobiera dane wyjściowe polecenia i kieruje je do wejścia innej komendy. Polecenia potokowe można zastąpić przy użyciu kilku poleceń ze zwykłymi strumieniami.

Przykłady

DIR | SORT
Sortuje bieżący katalog. Wykonywanie obu poleceń rozpoczyna się jednocześnie, a następnie wykonywanie polecenia sort jest wstrzymywane do momentu odebrania danych wyjściowych polecenia dir. Polecenie sort używa danych wyjściowych polecenia dir jako własnych danych wejściowych, a następnie wysyła własne dane wyjściowe do standardowego dojścia.

DIR /b | FIND „A” list.txt
Utworzenie listy nazw plików zawierających w nazwie literę A, znajdujących się w bieżącym katalogu. Dane wyjściowe polecenia dir są wysyłane za pośrednictwem polecenia filtrującego find. Aby w tym samym poleceniu zastosować kilka filtrów, należy oddzielić je symbolem potoku (|).

DIR c:\ /s /b | FIND „nazwa” | MORE
Polecenie przeszukuje każdy katalog na dysku C:, znajduje nazwy plików zawierające ciąg „nazwa”, a następnie wyświetla je na kolejnych ekranach (więcej informacji o filtrach zostało podane w dalszej części pracy):
Działanie powyższego polecenia jest podobne do poprzedniej komendy. Komenda dir odpowiada za wylistowanie wszystkich plików z partycji C:. Dane wyjściowe polecenia są przekazywane do komendy find, której zadaniem jest wyszukanie wszystkich plików o nazwie „nazwa”. Dane wyjściowe nie są jednak przekazywane do pliku tekstowego (jak poprzednio), a wyświetlane na ekranie (standardowe wyjście). Polecenie more ma za zadanie sprawić, by dane wyjściowe były wyświetlane na kolejnych ekranach, których zmiana następuje po wciśnięciu dowolnego przycisku.


Zmienne systemowe

W systemie Windows występują tzw. zmienne środowiskowe. Aby wyświetlić pełną listę zmiennych środowiskowych wpisz polecenie SET. Aby wyświetlić „rozwinięcie” zmiennej systemowej użyj polecenia ECHO np. echo %username%. Poniżej lista często używanych zmiennych systemowych.

%username%
Nazwa bieżącego użytkownika (małymi literami).

%homedrive%
Jest rozwijana w literę dysku na którym znajduje się katalog macierzysty bieżącego użytkownika.

%homepath%
Jest rozwijana w ścieżkę katalogu macierzystego bieżącego użytkownika.

%homeshare%
Jest rozwijana w zasób dzielony zawierający katalog macierzysty bieżącego użytkownika.

%processor_architecture%
Jest rozwijana w słowo kluczowe zawierające producenta procesora zainstalowanego w systemie (np. x86, AMD64 lub alpha).

%processor_level%
Jest rozwijana w liczbę wskazującą model procesora z danej rodziny.

%errorlevel%
Obejmuje stan zakończenia ostatniego polecenia. Wartość 0 generalnie wskazuje poprawne wykonanie polecenia, a wartość 1 wskazuje błąd. Niektóre polecenia wykorzystują zmienną do określenia wartości, której interpretacja jest zależna od polecenia.

%windir%
Zwraca lokalizację katalogu systemu operacyjnego.

%os%
Zwraca nazwę systemu operacyjnego.

%prompt%
Zwraca ustawienia wiersza poleceń.

%number_of_processors%
Określa liczbę procesorów (rdzeni) zainstalowanych w komputerze.


Ćwiczenia

UWAGA - jeżeli twoim folderem bieżącym jest jaki folder systemowy zapisywanie może się nie powieść. Zapisuj  na innym dysku

1.
Utwórz folder EGZAMIN.

Zapisuj w folderze EGZAMIN wszystkie pliki wykonane w następnych zadaniach. Wszystkie nazwy plików i folderów mogą być małymi literami.

2.
Utwórz plik KONSOLA.TXT i zapisz w nim polecenie, za pomocą którego zrealizowałeś poprzednie zadanie

3.
Utwórz plik ZMIENNE.TXT i zapisz w nim wszystkie zmienne systemowe

4.
Do pliku KONSOLA.TXT dopisz na końcu polecenie, za pomocą którego zrealizowałeś zadanie 3

5.
Wyszukaj w pliku ZMIENNE.TXT wszystkie wiersze zawierające słowo ”PROCESSOR”.
Wynik wyszukiwanie zapisz w pliku PROC.TXT

6.
Do pliku KONSOLA.TXT dopisz na końcu polecenie, za pomocą którego zrealizowałeś zadanie 5

7.
Wyświetl wszystkie foldery (tylko foldery) znajdujące się w twoim folderze profilowym za pomocą zmiennej %userprofile%. Wynik zapisz w pliku PROFIL.TXT

8.
Do pliku KONSOLA.TXT dopisz na końcu polecenie, za pomocą którego zrealizowałeś zadanie 7

9
Za pomocą systemowego polecenia tasklist.exe wyświetl listę uruchomionych procesów. Posortuj je alfabetycznie.
Wynik zapisz w pliku PROCESY.TXT.

10.
Do pliku KONSOLA.TXT dopisz na końcu polecenie, za pomocą którego zrealizowałeś zadanie 9
 

Rozwiązania :-)

MD EGZAMIN
ECHO "md egzamin" > KONSOLA.TXT
SET > ZMIENNE.TXT
ECHO "SET > ZMIENNE.TXT" >> KONSOLA.TXT
FIND PROCESSOR ZMIENNE.TXT > PROC.TXT
ECHO "FIND PROCESSOR ZMIENNE.TXT > PROC.TXT" >> KONSOLA.TXT
DIR /ad %userprofile% > PROFIL.TXT
ECHO "DIR /ad %userprofile% > PROFIL.TXT" >> KONSOLA.TXT
TASKLIST | SORT > PROCESY.TXT
ECHO "TASKLIST | SORT > PROCESY.TXT" >> KONSOLA.TXT