Copyright: BAT ®  1996 Andrzej Jan Wiktor


FILTRY SYSTEMOWE

FILTRY SYSTEMOWE.

Tak zwane filtry, które w rzeczywistości są programami zewnętrznymi systemu DOS, umożliwiają pobieranie danych z urządzeń wejściowych lub pliku, modyfikowanie ich ("filtrowanie") i wyprowadzanie do urządzenia wyjściowego lub pliku. Modyfikowanie odbywa się adekwatnie do cech, które program filtrujacy posiada. Następujące programy DOS są filtrami systemowymi: FIND.EXE, MORE.COM, SORT.EXE. Korzystając z filtrów systemowych, należy podać ścieżkę dostępu do tych programów, jak dla każdego programu zewnętrznego DOS.

FIND wyprowadza do standardowego urządzenia wyjściowego te wiersze pliku lub plików, które zawierają (lub nie zawierają) określony ciąg znaków.

FIND [/v] [/c] [/n] [/I] "znaki" [[n:] [ścieżka]  nazwplik [.roz] ..]
/v  - znajduje te wiersze, które nie zawierają określonego ciągu znaków.
/c  - podaje liczbę znalezionych wierszy.
/n  - przy każdym wyprowadzonym wierszu będzie podany jego numer. Jeżeli  użyto także [/c], to [/n] jest ignorowane.
/I  - litery małe nie będą odróżniane od dużych.
"znaki"  - szukany ciąg znaków; litery duże i małe są uwzględniane. Jeżeli poszukiwany ciąg znaków zawiera cudzysłów, to cudzysłowu należy użyć dwukrotnie.
[[n:] [ścieżka] nazwplik [.roz] ..] - wskazuje, gdzie szukać (w jednym czy więcej plikach).

MORE kopiuje z wejścia na monitor wszystkie wiersze stronanami; każda strona po zapełnieniu ekranu jest zatrzymywana. MORE może przejmować informacje pochodzące od innych programów lub poleceń, które zostały skierowane do tego programu przy pomocy symbolu potokowego ("<") lub symbolu filtracji ("|").

MORE < [n:] [ścieżka] nazwplik [.roz]
polecenie | MORE
Gdy ekran zapełni się, a pozostały jeszcze dane do wyświetlenia, to na dole ekranu pojawi się napis: --more--. Dalsze wyświetlanie danych nastąpi po przyciśnięciu dowolnego klawisza.

SORT sortuje wiersze tekstowe przesyłane z wejścia na wyjście. Rezultat wyświetla na ekranie, zapisuje w pliku albo wysyła na drukarkę. Jeżeli program SORT użyto jako przełącznika wejścia / wyjścia lub filtru ("<",">","|"), to nazwy plików wejściowego i wyjściowego muszą być różne. Plik wyjściowy nie może przekroczyć 63 kB.

SORT [/r] [/+n] [<] [n:] [ścieżka] nazwplik [.roz] [> [n:] [ścieżka] nazwplik]
polecenie | SORT [/r] [/+n] [> [n:] [ścieżka] nazwplik]
/r - sortowanie "odwrotne", to znaczy według malejących kodów znaków.
/+n - oznacza, że jako pierwsze mają być wzięte znaki od n-tej kolumny w danym wierszu.Jeżeli nie zastosowano tej opcji, to przyjmuje się standardowo kolumnę pierwszą. Porządkowanie odbywa się według znaków określonych przez COUNTRY.SYS; w czasie sortowania litery małe nie są odróżniane od dużych.

Przykład 1.
Przeanalizujmy następujący przykład:
DIR | MORE
DIR wyświetli zawartość katalogu, ale operator przetwarzania potokowego przechwytuje wyjście komendy DIR i "pompuje" do programu MORE.COM, który traktuje wykaz jako wejście i wyświetla go stronami, każdorazowo oczekując na naciśnięcie klawisza, który wznowi dalsze wyświetlanie - w ten sposób jest ono pod kontrolą. Takie użycie operatora przetwarzania potokowego jest równoważne przełączaniu wejścia / wyjścia w dwu oddzielnych operacjach. Powyższe zadanie możnaby zrealizować :
DIR > TYMCZAS.TXT
MORE < TYMCZAS.TXT
Dlaczego jednak robić coś w sposób skomplikowany, jeśli można prościej.

Przykład 2.
Zostaną wyświetlone te wiersze z plików: JEDEN.TXT i DWA.TXT, które zawierają słowo "odmieniec".
FIND /N "odmieniec" JEDEN.TXT DWA.TXT

Przykład 3.
DIR | SORT /+13 | MORE
Wykonanie tego zestawu komend spowoduje wyświetlenie zawartości katalogu bieżącego porcjami, posortowanymi wg. wzrastającej długości plików. Kolejność ta jest określone dla dziesiętnych, setnych, tysiącznych ,itd. wielkości bajtów, określającyh długość plików.

Przykład 4.
DIR | SORT /+13 > ILEBAJT.TXT
Przedstawiony ciąg poleceń umieści, posortowaną zawartość katalogu bieżąego dysku C, w pliku ILEBAJT.TXT.

Przykład 5.
DIR | SORT | MORE
Jak wiadomo, sortowanie nazw katalogów i plików odbywa się zgodnie z ustaleniami zawartymi w COUNTRY.SYS. Wykonanie tego przykładu spowoduje, że alfabetycznie uporządkowane nazwy katalogów i plików katalogu bieżącego, zostaną wyświetlone strona po stronie.

Przykład 6.
DIR a:\ | FIND "96.05.12" > MAJ9612.TXT
W tym przykładzie pokazany jest sposób na przechowanie w pliku MAJ96.TXT opisu tych plików, znajdujących się na dyskietce w napędzie A, które zostały utworzone lub zmodyfikowane 11 maja 1996 roku. Następnie, po załadowaniu do stacji nowej dyskietki, dołączymy opis do tego samego pliku.
DIR a:\ | FIND "96.05.12" >> MAJ9612.TXT