Rozdział 5
COMMAND PROCESSOR - SZERSZE MOŻLIWOŚCI

Command Processor SpartaDOS X może być znacznie rozszerzony przez użycie plików poleceń, kierowania I/O w poleceniach, wskazań definiowanych przez użytkownika, szlaków poszukiwania poleceń i innych możliwości.

Ten rozdział opisuje te możliwości oraz podaje wiele przykładów ich zastosowania. Większość z nich jest nowością w SpartaDOS lub zostało znacznie rozszerzone w porównaniu do poprzednich wersji SpartaDOS.

Pliki poleceń.

Pliki poleceń (batch files) są listami poleceń SpartaDOS, które mogą być przekazane przez DOS jako pliki tekstowe. Parametry mogą być do nich dołączane przez wpisanie ich w wiersz polecenia po nazwie pliku poleceń. Składnia jest następująca:

-fname [param1 param2...param9]

Jeżeli po nazwie pliku (fname) nie zostało podane rozszerzenie, to przyjmowane jest rozszerzenie ".BAT". Parametry (param) są dowolne i mogą być pominięte.

Poniżej znajduje się przykład pliku poleceń, który z dwóch plików tworzy trzeci plik zawierający oba pliki źródłowe (nazwijmy go "TEST.BAT").

COPY %1 %3
COPY %2 %3/A

Teraz polecenie:

-TEST PLIK1 PLIK2 WYNIK

połączy pliki "PLIK1" i "PLIK2" dając w rezultacie plik "WYNIK".

Do pliku poleceń można przekazać do dziewięciu parametrów
(ponumerowanych od %1 do %9). Parametrem "%0" jest nazwa pliku poleceń (w powyższym przykładzie "TEST"). Parametry "%" mogą być umieszczane w dowolnych miejscach pliku poleceń, w tym również wewnątrz tekstu (tzn. bez spacji przed i za znakiem "%").

Parametry pliku poleceń są automatycznie zapisywane jako zmienne systemowe "_x1", gdzie "x" jest numerem parametru. Ponieważ Command Processor nie jest stale w pamięci, to konieczna jest możliwość zapisywania tych zmiennych w dowolnym miejscu. Oznacza to, że całkowita wielkość parametrów nie może przekraczać 256 znaków, włącznie z nazwami zmiennych ("_x1=") oraz spacjami, które je rozdzielają.

Standardowy plik poleceń.

Przy pierwszym uruchomieniu Command Processor próbuje uruchomić plik poleceń o nazwie "AUTOEXEC.BAT". Jeżeli potrzebne są polecenia ustalające wymaganą konfigurację systemu, to należy je umieścić w takim pliku. Zmienna "BATCH" jest odczytywana przez Command Processor przed wyświetleniem wskazania. Jeżeli zmienna ta istnieje i zawiera nazwę pliku, to plik jest wykonywany jako plik poleceń. Gdy zmienna ta zostanie odczytana, to jest kasowana. Wyjaśnia to, dlaczego plik
"AUTOEXEC.BAT" jest odczytywany tylko przy pierwszym uruchomieniu SpartaDOS X. Zmienna "BATCH" może być także użyta do odczytania pliku poleceń o innej nazwie przez użycie wiersza:

SET BATCH=d:fname.BAT

w pliku CONFIG.SYS.

Kierowanie I/O.

Możesz zmienić standardowe wejście i wyjście poleceń SpartaDOS X w wierszu polecenia. W SpartaDOS 3.2 kierowanie jest realizowane poprzez pliki poleceń (dla kierowania wejścia) i polecenie PRINT (dla kierowania wyjścia). SpartaDOS X ma wbudowane kierowanie I/O w całkowicie odmienny sposób. Pliki poleceń nie są już wykorzystywane do kierowania wejścia - są one tylko odczytywane przez Command Processor. Polecenie PRINT zostało natomiast usunięte.

W SpartaDOS X możesz zmienić wyjście pojedynczego polecenia przez dopisanie ">>d:fname" w wierszu polecenia. Podobnie w kierowaniu wejścia jest realizowane przez włączenie "<<d:fname" w wierszu polecenia. Na przykład polecenie:

DIR >>PRN:

kieruje wyjście polecenia DIR na drukarkę (wykaz plików nie pojawia się na ekranie). Odmiennym sposobem kopiowania plików może być:

TYPE fname >>docel

Jest to wolniejsze niż polecenie COPY i nie kopiuje do nowego pliku daty.

BASIC <<AUTOGO

uruchamia program w Basicu o nazwie "START.BAS", jeżeli plik tekstowy, "AUTOGO" zawiera wiersz:

RUN "D:START.BAS"

Jako przykład kierowania wyjścia, poniższy plik poleceń pozwala na obejrzenie dowolnego programu strona po stronie przez skierowanie go do tymczasowego pliku, a następnie wyświetlenie tego pliku z przerwami:

%1 %2 %3 %4 %5 %6 %7 %8 %9 >>TEMP
TYPE TEMP /P
PAUSE
DEL TEMP

Na przykład, jeżeli nazwiesz powyższy plik poleceń "MORE.BAT" i chcesz przeczytać wskazówki wyświetlane przez program ARC, użyj:

-MORE ARC

Szlak poszukiwań.

Za każdym razem, gdy podawane jest polecenie bez określenia stacji i/lub szlaku, wykonywane jest sprawdzenie, czy jest to polecenie wewnętrzne (jak ERASE). Jeżeli nie, to przeszukiwane są zainstalowane polecenia zewnętrzne (jak TD lub KEY, gdy już raz były użyte). Gdy nadal polecenie nie zostało znalezione, to system sprawdza, czy istnieje zmienna systemowa "PATH". Jeżeli tak, to przeszukiwane są wszystkie urządzenia i/lub szlaki wymienione w tej zmiennej (w podanej kolejności). Zmienna "PATH" zapewnia więc znaczną elastyczność systemu, gdyż pozwala na umieszczenie najczęściej stosowanych poleceń lub programów użytkowych w różnych podkatalogach i łatwe ich odszukanie. Szczególnie wygodne jest to przy korzystaniu z twardego dysku. Wartość zmiennej "PATH" możesz sprawdzić przez wpisanie:

PATH

bez parametrów. Standardową wartością tej zmiennej jest: CAR:
Szlak poszukiwań (search path) może być zmieniony przez wpisanie:

PATH path1;path2...;pathn

Każde wpisane urządzenie i/lub szlak musi być oddzielone od innego średnikiem ";". Dobrą praktyką jest przy tym pozostawianie CAR: jako pierwszego wpisu, ponieważ najczęściej używane polecenia znajdują się w tym urządzeniu. Kolejność wpisów jest ważna, gdyż ustala kolejność poszukiwania polecenia. Na przykład:

PATH CAR:;A:\DOS\;A:\TOOLKIT\;D9:>;A:>;:>

powoduje przeszukanie urządzenia CAR:, katalogu DOS w D1:, katalogu TOOLKIT w D1:, ramdysku D9:, głównego katalogu w D1:, głównego katalogu w bieżącej stacji, a następnie bieżącego katalogu w bieżącej stacji. Jeżeli szlak jest podany w wierszu polecenia, to szlak poszukiwań nie jest używany. Poczynając od wersji SpartaDOS X 4.19 szlak poszukiwań jest także wykorzystywany przez pliki poleceń oraz polecenia X, BASIC i CAR. Jest to duża zmiana i bardzo ważna. Jest więc teraz możliwe użycie szlaku przy otwieraniu pliku tylko do odczytu z Basica lub innego języka przez dodanie 32 do wartości AUX1 w instrukcji OPEN. Na przykład:

OPEN #1,4+32,0,"D:CONFIG.DAT"

powoduje poszukiwanie wskazanego pliku we wszystkich miejscach wymienionych w zmiennej systemowej "PATH". Nie działa to przy otwieraniu pliku do zapisu lub wymiany danych, gdyż takie użycie łatwo mogłoby spowodować błędy i uszkodzenia ważnych programów.

Ze względu na tą zmianę, dobrą praktyką jest umieszczanie bieżącego katalogu jako drugiego wpisu w szlaku. Odpowiednia zmiana pokazanego powyżej przykładu daje więc:

PATH CAR:;;A:\DOS\;A:\TOOLKIT\;D9:>;A:>;:>

gdzie dwa średniki po "CAR:" oznaczają, że powinien być przeszukiwany bieżący katalog.