DOSKEY Rezydentny program
ułatwiający posługiwanie się zleceniami
POSTAĆ: TYP:
ZEWNĘTRZNY
DOSKEY [/REINSTALL]
[/BUFSIZE=Size] [/MACROS] [/HISTORY]
[/INSERT | /OVERSTRIKE] [MACRO=Text]
ZNACZENIE: Zainstalowanie rezydentnego programu dla ułatwienia obsługi
wszelkich poleceń
wydawanych systemowi. Można
określić
wielkość zajętej
pamięci operacyjnej, ale minimum 3KB.
PARAMETRY:
REINSTALL - Zainstalowanie nowej kopii programu
w pamięci. Dodatkowy
bufor i
nowe ustawienia, lecz poprzednia kopia pozostaje w
pamięci nietknięta.
Oznacza to, prawie podwójną zajętość
pamięci.
Poprzednio pamiętane komendy nie są teraz pokazy-
wane.
Startujemy jakby od początku, lecz jeśli
specjalnym
programem
uda nam się usunąć tę nową kopię DOSKEY-a,
to
okaże się,
że pierwotna kopia nadal pamięta swoje komendy.
UWAGA:
Samo DOSKEY bez parametru /REINSTALL powoduje także
powtórne załadowanie programu do pamięci, ale nowy
bufor komend ma przekopiowaną
zawartość ze starego,
czyli zawiera taki sam wykaz jak poprzednio.
UWAGA: W
celu jednoczesnego powiększenia bufora, użyj
pa-
rametru /REINSTALL wraz z /BUFSIZE.
BUFSIZE - Określenie bufora na przechowywanie
pamiętanych komend i
makr.
Domyślnie parametr Size przyjmuje
wartość 1024. W
celu
powiększenia bufora po pierwszym załadowaniu,
należy
użyć dodatkowo parametru /REINSTALL.
MACROS - Pokazuje wszystkie zdefiniowane
makra.
HISTORY - Pokazuje wszystkie
zapamiętane do tej
pory polecenia
(klawisz
F7).
INSERT - Ustawienie w trybie wstawiania
znaków pomiędzy inne.
Widoczny
jest duży kursor. Standardowo ustawione
jest na
OVERSTRIKE, czyli powielanie nowym tekstem po starym (mały
kursor. Do
zmiany tymczasowej używaj klawisz Ins.
OVERSTRIKE - Standardowy tryb przepisywania starego
tekstu nowym (mały
kursor).
Chcąc to zmienić należy użyć przełącznika /INSERT
lub
nacisnąć klawisz Ins.
MACRO - Definiowanie makra, czyli
przyporządkowanie jednej nazwie
tekstu
Text, zawierającego jedną lub kilka komend naraz. W
celu zdefiniowania następnego makra, należy
powtórnie
wywołać
DOSKEY z nazwą nowego makra a po nim
znak = i
przyporządkowany Text.
PRZYPOMINANIE I
MODYFIKOWANIE KOMEND:
Po załadowaniu
programu DOSKEY, podczas pisania
każdej nowej i
podczas poprawiania
każdej starej komendy, można
używać następujących
klawiszy:
- Przypomnienie
ostatnio użytkowanej komendy.
- Przypomnienie
następnej po poprzedniej z użytkowanych komend.
PgUp - Przypomnienie najstarszej (pierwszej) z zapamiętanych komend.
PgDn - Przypomnienie najświeższej (ostatniej) z
zapamiętanych komend.
- Ruch kursora w
lewo w obszarze pokazywanej komendy.
- Ruch kursora w
prawo w obszarze pokazywanej komendy.
Ctrl- - Skok kursora o
jedno słowo w lewo.
Ctrl- - Skok kursora o jedno słowo w prawo.
Home - Skok kursora na początek pokazywanej
komendy.
End - Skok kursora na koniec pokazywanej komendy.
Esc - Rezygnacja i skasowanie wyświetlanej
komendy.
F1 - Kopiuje po jednym znaku ze wzorca.
F2 - Skopiowanie ze wzorca aż do znaku
podanego po F2.
F3 - Skopiowanie do końca wiersza.
F4 - Skasowanie do znaku podanego po F4.
F5 - Skopiowanie wiersza do wzorca i
wyczyszczenie wiersza.
F6 - Wstawienie znaku końca zbioru Ctrl-Z,
czyli
F7 - Pokazuje wszystkie zapamiętane komendy
z pauzą, oraz numerację
Alt-F7 - Kasuje wszystkie zapamiętane do tej pory
komendy.
F8 - Poszukiwanie komendy zaczynającej się od podanego
tekstu.
Napisz
najpierw początkowe litery interesującej cię
komendy i
naciskaj potem
klawisz F8, aż pokazana będzie ta, którą szukasz.
F9 - Przywołanie polecenia według podanego
numeru, po F9.
Alt-F10 - Kasuje wszystkie zapamiętane makra.
Ctrl-T - Symbol oddzielający zestaw komend
w jednej, patrz niżej
ROZSZERZONE MOŻLIWOŚCI
WYDAWANIA KOMEND:
Za pomocą klawiszy
Ctrl-T, które dają znak , można
oddzielać od
siebie polecenia i tym
samym wydać jedno, złożone z kilku naraz
(do
128 znaków).
Przykładowo polecenie złożone z czterech, które będzie
usuwać katalog
\TEST i pokazywać ile dzięki
temu zwolniło się
miejsce:
CD \ DEL D:\TEST RD D:\TEST DIR
Zauważ,
że jest to co innego niż symbole $T, używane do oddzielania
komend w definiowanym
makro. To nie jest definiowanie
makra, które
używa się prosto, przez
napisanie tylko nazwy, lecz jednorazowe użycie
złożonej komendy. Można
ją wprawdzie zawsze przypomnieć i użyć
powtórnie po odpowiednim
zmodyfikowaniu. Patrz niżej!
TWORZENIE MAKR:
Oprócz zwykłego
pamiętania wydawanych kolejno poleceń,
można także
zdefiniować tymczasowo
i na stałe nawet złożone makro,
które będzie
potem wywoływane przez
wydanie uproszczonego i skróconego
polecenia.
Aby je
zdefiniować, należy wywołać
program DOSKEY z
parametrem
nazwa=Text, gdzie
'nazwa' jest nazwą tego
makra. Będzie ono
potem
wywoływane poprzez tą
nazwę. Przykładowo:
DOSKEY wykaz=dir
a:\ - zdefiniowanie makra
'wykaz'
wykaz - wykonanie
zdefiniowanego makra
Makro takie może być
skomplikowane i odpowiednio sparametryzowane,
według poniższych
zasad:
- odpowiednikiem parametrów
wywołania %1 do %9 w BATCH FILE,
są tutaj
znaki $1 do $9.
- wyszczególnione znaki
zastępują symbole:
Zapis Symbol Znaczenie
============================================================
$g >
Skierowanie wyjścia, np. do określonego
zbioru, który
będzie od nowa
utworzony.
$g$g >>
Skierowanie wyjścia w
apendzie, czyli dołączeniu, do
już istniejącego zbioru
(nie kasuje starej zawartości).
$l < Skierowanie
wejścia, np. w celu odczytania
zbioru
jako wejścia do programu
(np. zamiast klawiatury).
$b |
Prześlij wyjście z jednej komendy/makra do
drugiej.
$t Oddzielanie
komend wewnątrz definiowanego makra.
Pozwala połączyć
wykonanie wielu komend naraz.
$1 do $9 Podstawienie kolejnych parametrów wywołania,
tak jak
w zbiorach BATCH FILE symbole
%1 do %9 .
$* Wszystkie parametry wywołania
makra są w
całości
przekazywane i podstawiane w miejsce $*
bez rozróżniania.
Cała linia jest
przekazywana a nie pojedynczy
parametr, tak jak
to było w $1 do $9.
PRZYKŁADY UŻYCIA MAKR:
1. Definiowanie, użycie i
kasowanie makra:
DOSKEY DIRDEL=ECHO Y
$b DEL $1 $t RD $1
Zdefiniowanie
makra 'DIRDEL', które będzie kasować
automatycznie
wszystkie zbiory
z katalogu podanego w pierwszym para-
metrze. Zaraz
potem katalog ten zostanie usunięty. Zauważ, że
komendy
oddzielone są za pomocą znaków $t.
Pod $1 będzie
podstawiany
pierwszy parametr wywołania, czyli nazwa katalogu
do usunięcia.
Symbol $b umożliwia przekazanie odpowiedzi
'Y'
na pytanie
komendy DEL, czy chcemy skasować wszystkie zbiory.
UWAGA: Jeśli w
katalogu tym były zbiory o
atrybucie HIDDEN,
READ ONLY
lub SYSTEM, to nie zostaną one
usunięte, a
przez to
nie uda się potem usunąć tego katalogu. Można
temu
jednak zaradzić, nieco tylko rozbudowując makro:
DOSKEY DIRDEL=ATTRIB -h -r -s $1\*.* $t ECHO Y $b DEL $1 $t RD $1
Tak
jak poprzednio, ale bez żadnych niespodzianek, pod warunkiem,
że będzie
dostępna komenda ATTRIB.
DIRDEL C:\UTIL
Przykład użycia
zdefiniowanego powyżej makra
'DIRDEL'.
Parametrem jest
nazwa katalogu 'C:\UTIL', który ma być
automatycznie
usunięty.
Katalog \UTIL nie może być jednak aktualnym.
Zbiory będą
wtedy z niego usunięte, ale sam katalog nie.
Bądź jednak
ostrożny, bo użycie tego makra z
parametrem C:\
spowoduje
skasowanie wszystkiego z katalogu głównego dysku C:
wraz z systemem
operacyjnym. Będziesz potem musiał
użyć komendy
SYS, aby
uratować sytuację. Zatem nie kasuj
katalogu
głównego dysku
C: !!
DOSKEY DIRDEL=
Zlikwidowanie makra 'DIRDEL' i zwolnienie miejsca (na
pamię-
tanie większej
liczby komend).
2. Tworzenie programu
Batch ze zdefiniowanymi makrami DOSKEY:
DOSKEY /MACROS > MAKRA.BAT
Zostanie
utworzony zbiór 'MAKRA.BAT', który
będzie zawierał
wszystkie
zdefiniowane za pomocą DOSKEY
makra. Zbiór Batch
umożliwi potem
łatwe instalowanie powtórne tych makr po prze-
ładowaniu
komputera. W tym celu np. za pomocą programu
EDIT
lub edytora DOS Commander klawisz F4,
dopisać na początku
każdego wiersza
nazwę komendy doskey i odstęp. Można wtedy
już, włączyć
następującą komendę do zbioru AUTOEXEC.BAT:
call makra.bat
DOSKEY /HISTORY > DOSCOMM.BAT
Zapamiętanie
w zbiorze 'DOSCOMM.BAT' wszystkich komend
jakie
były używane
podczas ostatniej sesji. Można
tego programu
Batch użyć do
odtworzenia tej sytuacji, np. po
przeładowaniu
komputera.
Trzeba tylko przed każdą linią dopisać doskey
UWAGA: Nie można
wywoływać makra z wnętrza programu typu Batch.
Można za
to utworzyć jakieś
makro podczas wykonywania programu Batch,
aby
można je było potem
używać ręcznie. Za to makro, może
wywołać do-
wolny program, a w
tym i Batch.
UWAGA: Nie ma
możliwości zagnieżdżania makr, tzn.
nie może jedno
makro
wywołać inne,
wcześniej zdefiniowane. Można jednak oczywiście wywołać
dowolny program, w
tym i makrodefinicję typu BATCH FILE.
Można
zatem napisać
najpierw odpowiedni Batch File, a
następnie definiować
makra za pomocą
DOSKEY, które będą Batch wywoływać z różnymi
parametrami,
zależnie od potrzeb.